配置私鑰和公鑰
先檢查一下服務器的ssh配置文件
/etc/ssh/sshd_config
RSAAuthentication yes # 啟用 RSA 認證 默認為 yes
PubkeyAuthentication yes # 啟用公鑰認證,默認為yes
在客戶端執行命令 ssh-keygen -t rsa 生成密鑰,會生成一個私鑰和一個公鑰文件,在提示輸入 passphrase 時如果不輸入,直接回車,那么以后你登錄服務器就不會驗證密碼,否則會要求你輸入 passphrase,默認會將私鑰放在 /root/.ssh/id_rsa 公鑰放在 /root/.ssh/id_rsa.pub。
windows 下面是一樣的命令 我這里用的是git的命令窗口:
密鑰文件會保存到,C:\Users\你的用戶名\.ssh 文件夾下面
將公鑰拷貝到遠程服務器上的/root/.ssh/authorized_keys文件中,注意,文件名一定要叫authorized_keys。如果有多個客戶端,將多個公鑰以換行分開,一行一個客戶端。
客戶端上保留私鑰,公鑰可以刪除。服務器上保存公鑰,客戶端上保存私鑰。這樣就可以實現無密碼驗證登錄了。
如果想要獲得最大化的安全性,禁止口令登錄,
可以修改 /etc/ssh/sshd_conf 中的
PasswordAuthentication yes 改為
PasswordAuthentication no
即只能使用密匙認證的 openssh,禁止使用口令認證。
如果希望ssh公鑰生效需滿足至少下面兩個條件:
1) .ssh目錄的權限必須是700
2) .ssh/authorized_keys文件權限必須是600