有時候兩台或多台主機之間我們希望可以進行免密登錄,其實SSH有提供這樣的功能,只需三步。首先在SSH服務端配置允許公鑰私鑰配對認證,然后在客戶端生成公鑰,最后將客戶端的公鑰上傳到服務端。這樣就可以從客戶端免密登錄服務端特定的用戶了。
具體操作如下:
一、在SSH服務器所在機器上
1、以root用戶登錄,更改ssh配置文件 /etc/ssh/sshd_config,去除以下配置的注釋
RSAAuthentication yes #啟用rsa認證
PubkeyAuthentication yes #啟用公鑰私鑰配對認證方式
AuthorizedKeysFile .ssh/authorized_keys #公鑰文件路徑
2、重啟SSH服務
[root@server /]#systemctl restart sshd //重啟ssh服務
二、在客戶端機器上
1、生成公鑰私鑰對
[root@client /]#ssh-keygen -t rsa
一路默認回車,系統在/root/.ssh下生成id_rsa
、id_rsa.pub
這里使用的rsa
還可以指定其他算法如:dsa | ecdsa | ed25519 | rsa1z。不同版本的系統支撐的算法可能不一樣。詳情請使用man ssh-keygen
查看。
2、把id_rsa.pub
發送到服務端機器上
[root@client /]#ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.11.20 #server ip
這里傳個了192.168.11.20主機的root用戶,你可以替換成其他用戶。
3、驗證
[root@client /]#ssh root@192.168.11.20 #server ip