來源:http://coolnull.com/3510.html
說明:
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的文件名稱,我這里為“coolnull”,名字可以任意填寫;在“Passphrase”處輸入一個密碼用於加密私鑰,並再次輸入密碼確認。這里偷懶就留空,后面加載這個密鑰就不需要密碼了。如下圖:
點擊“Next”,密鑰生成完畢(Public key Format選擇SSH2-OpenSSH格式),這里顯示的是公鑰,我們可以復制公鑰然后再保存,也可以直接保存公鑰到文件,如下圖。私鑰這里不顯示,可以在“User Key Mangager…”導出到文件:
點擊“Save as file…”按鈕,將公鑰(Public key)保存到磁盤,文件名為“coolnull.pub”,備用。
二、上傳公鑰(Public Key)到服務器:
使用到Xshell登錄到服務器,進入到“/root/.ssh/”目錄,運行rz命令(如果沒有rz命令,運行yum install lrzsz安裝),將coolnull.pub發送到服務器,然后運行如下命令,將公鑰(Public Key)導入到“authorized_keys”文件:
[root@localhost ~]# cd /root/.ssh///這里是cat到root/.ssh目錄下,如果其他用戶需要key登陸請切換到其他用戶目錄去[root@localhost .ssh]# cat coolnull.pub >> authorized_keys [root@localhost .ssh]# chmod 600 authorized_keys [root@localhost .ssh]# ls authorized_keys known_hosts coolnull.pub [root@localhost .ssh]# cat authorized_keys ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAuLm6azuGHq8SjcusiLVHdNJXToDUI6A9VYSb0Ybsyc6n+MsqOA+Jw6yR1P6ppvDm3xuUIuwZDBpplVB1vB9VxqYdAX7uQh81wObaru3zBe6D/XrlE8jpNjRgolg0pzxDi4QmeG4jdZM38TZXA/TsBoEBg3LeEgmlKRW24bL3FYeucriindFZAZs/raUmHUrL09TuCzhNw1kGjSIF4xh3USGT0UVk+sHx7NnbCoJ57TJR0qpjue/4xCXDUgpUjguYn4fM5YcHDfh37OmsmfHiet/kCfKqZEiADaqDiqqzOBN/oHANP/84eQdT3eugO+/Mz5fE9P3djQrHYnOOLHy8YQ==
三、配置Xshell使用密鑰認證方式登錄到服務器:
打開Xshell,點擊“New”按鈕,彈出“New Session Properties”對話框,在“Connection”欄目中,輸入剛剛配置好公鑰(Public Key)的IP地址和端口,如下圖所示:
點擊左側的“Authentication”,切換到認證欄目,在“Method”選擇“Public Key”認證,用戶名輸入“root”(公鑰是放在root目錄下的.ssh文件夾中),在“User Key”中選擇我們剛才生成的私鑰“coolnull”因為只是演示就放空了,“Passphrase”中輸入私鑰的加密密碼,這里是留空。
附錄:
其實,linux下的ssh-keygen下也可以生成密鑰,在linux下輸入ssh-keygen -t rsa,在提示下,輸入密鑰的名稱(這里為key)和私鑰加密密碼,既完成密鑰生成。生成的兩個文件中,“key”為私鑰,“key.pub”為公鑰。具體可以參考這篇文章SecureCRT通過密鑰登錄