目的:使用 ssh 的公鑰密鑰實現自動登陸
第一步:生成 ssh 公鑰密鑰對
現在的 linux 服務器默認都安裝 openssh 的軟件。
生成公鑰密鑰對是在管理服務器上生成的:
ssh-keygen -b 1024 -t rsa
回車
aaaaa
aaaaa
[root@server ~]# ssh-keygen -b 1024 -t rsa Enter file in which to save the key (/home/usrname/.ssh/id_dsa): #詢問公鑰和私鑰存放的位置,回車用默認位置即可 Enter passphrase (empty for no passphrase): #詢問輸入私鑰密語,輸入密語 Enter same passphrase again: #再次提示輸入密語確認 Your identification has been saved in /home/usrname/.ssh/id_dsa. #提示公鑰和私鑰已經存放在/root/.ssh/目錄下 The key fingerprint is: |
-b 1024 采用長度為1024字節的公鑰/私鑰對,最長4096字節,一般1024或2048就足夠滿足安全需要了,太長的話加密解密需要的時間也增長。
-t rsa 采用rsa加密方式的公鑰/私鑰對,除了rsa還有dsa方式,rsa方式最短不能小於768字節長度。
如果還需要使用更多其他參數請參考man ssh-keygen。
在生成密鑰對的過程中你被詢問:輸入密碼短句 Enter passphrase (empty for no passphrase) ,密碼短句(passphrase)是你使用一個短語或者一句話作為密碼輸入,再由系統內部的加密或是散列算法生成虛擬密碼后,進行下一步的認證。好處是 增強了安全性不易被破解。看過很多文章,里面都把這個短句輸入為空,也就是代表不使用密碼短句。在這里我強烈要求你輸入密碼短句。有人會說使用密碼短句 后,登陸還要輸入密碼短句這樣使用沒有比使用用戶名和密碼登陸方便多少,我說請你不要急,接着看我的文章。
注意:如果你生成密鑰對而不設置密碼短語,那么如果你的私鑰丟失了,那么就你的麻煩可能會比丟失用戶名密碼還嚴重。
cat id_rsa.pub >> authorized_keys
chmod 600 authorized_keys
將.ssh下面的私鑰下載下來,配置xshell密鑰登陸
A - 將root/.ssh中的id_rsa.pub修改名字為authorized_keys 並且用chmod 600 authorized_keys設置權限。
B - 找到/etc/ssh/sshd_config ,把RSAAuthentication和PubkeyAuthentication兩行前面的#注釋去掉。
C - 重啟SSHD服務。
Debian/Ubuntu執行:/etc/init.d/ssh restart
CentOS執行:/etc/init.d/sshd restart
第二步:拷貝你的公鑰到被管理的服務器上
在你的管理服務器上把你的公鑰拷貝到被管理服務器上要進行自動登陸的用戶目錄下。