ssh登錄提供兩種認證方式:口令(密碼)認證方式和密鑰認證方式。其中口令(密碼)認證方式是我們最常用的一種,這里介紹密鑰認證方式登錄到linux/unix的方法。
使用密鑰登錄分為3步:
1、生成密鑰(公鑰與私鑰);
2、放置公鑰(Public Key)到服務器~/.ssh/authorized_key文件中;
3、配置ssh客戶端使用密鑰登錄。
一、生成密鑰公鑰(Public key)與私鑰(Private Key)
打開Xshell,在菜單欄點擊“tools”,在彈出的菜單中選擇“User Key Generation Wizard...”(密鑰生成向導),如下圖:
彈出“User Key Generation Wizard”對話框,在“Key Type”項選擇“RSA”公鑰加密算法,“Key Length”選擇為“2048”位密鑰長度,如下圖:
點擊“Next”,等待密鑰生成:
繼續下一步,在“Key Name”中輸入Key的文件名稱,我這里為“key”;在“Passphrase”處輸入一個密碼用於加密私鑰(密碼任意輸入),並再次輸入密碼確認,如下圖:
點擊“Next”,密鑰生成完畢(Public key Format選擇SSH2-OpenSSH格式),這里顯示的是公鑰,我們可以復制公鑰然后再保存,也可以直接保存公鑰到文件,如下圖。私鑰這里不顯示,可以在“User Key Mangager...”導出到文件:
點擊“Save as file...”按鈕,將公鑰(Public key)保存到磁盤,文件名為“key.pub”,備用。
二、上傳公鑰(Public Key)到服務器:
使用到Xshell登錄到服務器,進入到“/root/.ssh/”目錄,運行rz命令(如果沒有rz命令,運行yum install lrzsz安裝),將key.pub發送到服務器,然后運行如下命令,將公鑰(Public Key)導入到“authorized_keys”文件:
[root@localhost .ssh]# rz [root@localhost .ssh]# ls [root@localhost .ssh]# ls [root@localhost .ssh]# rz [root@localhost .ssh]# ls key.pub [root@localhost .ssh]# ls key.pub [root@localhost .ssh]# ls key.pub [root@localhost .ssh]# cat key.pub >> authorized_keys [root@localhost .ssh]# ls authorized_keys key.pub [root@localhost .ssh]# chmod 600 authorized_keys [root@localhost .ssh]# ls authorized_keys key.pub [root@localhost .ssh]# cat authorized_keys ssh-dss AAAAB3NzaC1kc3MAAAEBALdTe54J+LFiZhi2LIM7G3HImkoXCj2GNMmQHOSqcG2GPmny0oNODoEwdiszoH/8VgxeuERaHyBiXe0ytvrxVrxjx6fkcBZGwhLIIORqM+CrfcD/Vjk8fr/O1d9pT16a9GiYebsUNfVAaD6cC1PnxzXcmMUqBfk48VocVNhvccoHRX2kHKazPQMdXOgaDfMqz4XaibqZH+fLuc1xpysHvcJFtkaFPFQH3sXvh4vj75d6mjFQGJCneJm1MWPQmmkkjLg+W/uAfSG7MYrp19+2mIf7iP527mDieM18fiwI7NkOUEUxeLs0EJal6kK9j1OUWqZqRFblPlKriA5M2fDco0EAAAAhANbdu7g54qxccYk5uwNAEblJvfPypf9h14Mb+oD8gqQdAAABAQCZIxc5hA8moces3s442qStuniyA2bNLtiuMMfav57447Xts8MzFBtvgxB4iX4cTdWdNETLjWjvUqzlFyN67t3+fOBsRjSFIKbx5P/45B6PqamZSu7+kvq5gy9WSTXqlqF5JAwvqKyUnlxPoJWL5qQ8Ij97eznYw2sp3dwKYIUDo7wFUdwlQhIwCkdFBV80eZdWSvJyGK+2t1Rd3VyXxulE8u+QdVaFf4T2paEy5u00shff0J+D6rPNncXxOSx0FQbZzwvAaFAs9oU7Eku3AifheM8bVJiAgzDH2uXzBoxrdSQAB1TSV9aUKMrt635jDShSBql92RR0Vx3+zAjiaWiNAAABAAEWbJEWB96X1ZmqKbMOagbwSy3pQ/NmcZs7l2VRwd3v5Xaz1ubxX3NZCz/IyL1TOjVeRBf56UjY1On48dhvE6Y1qEFBTXzFAhFlPK/O/aRi/Jcq3/UWSBSUNy3ztmUN+OyZFsIPPRCANotP9uaLmJulLB1aYg9LQzQfgwQua5fNgZIHjP2vdd95B+NfnnHyz+tHtXMcM5Evu7pES/XtgnwTzCyS6xL2FL9veIBBGTYFKXNtnyvb2oBhD42PGWFO3OE847SwG6RLvjzN19CkNqoqhpPzqJEzigviiL4f1FR4nz20wzgVnwQemhEvA1NJwvaDFQI51P971Uz4hjbHD54=[root@localhost .ssh]# ^C [root@localhost .ssh]# pwd /root/.ssh [root@localhost .ssh]# ^C
三、配置Xshell使用密鑰認證方式登錄到服務器:
打開Xshell,點擊“New”按鈕,彈出“New Session Properties”對話框,在“Connection”欄目中,輸入剛剛配置好公鑰(Public Key)的IP地址和端口,如下圖所示: