生成公鑰
ssh-keygen -t rsa -P '' (注:最後是二個單引號,表示不設置密碼)
然後分發公鑰到目標機器
ssh-copy-id -i ~/.ssh/id_rsa.pub 用戶名@對方機器IP
如果失敗,有可能是以下原因:
1、權限問題
.ssh目錄,以及/home/當前用戶 需要700權限,參考以下操作調整
sudo chmod 700 ~/.ssh
sudo chmod 700 /home/當前用戶
.ssh目錄下的authorized_keys文件需要600或644權限,參考以下操作調整
sudo chmod 600 ~/.ssh/authorized_keys
2、StrictModes問題
編輯
sudo vi /etc/ssh/sshd_config
找到
#StrictModes yes
改成
StrictModes no
3.系統中有多個認證密鑰文件
多個認證密鑰文件,我們可以使用參數 -i 來指定需要傳輸至目標機的公鑰文件,如:
$ ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
192.168.246.170系統中兩個認證密鑰文件,路徑如下:
/home/jianzhihua/.ssh/id_rsa.pub
/data/jianzhihua/.ssh/id_rsa.pub
在192.168.246.170執行:
$ ssh-copy-id -i /data/jianzhihua/.ssh/id_rsa.pub [email protected]
從192.168.246.170登錄到192.168.246.171,終端執行:
$ ssh [email protected]
Enter passphrase for key '/home/jianzhihua/.ssh/id_rsa.pub': ##系統提示輸入私鑰,可不論輸與不輸都不能直接登錄
處理方法:
在192.168.246.170終端執行:
$ eval $(ssh-agent)
$ ssh-add
Identity added: /data/jianzhihua/.ssh/id_rsa (/data/jianzhihua/.ssh/id_rsa)
因爲:
$ grep jianzhihua /etc/passwd
jianzhihua:x:1039:1039::/data/jianzhihua:/bin/bash
當然你也可以使用/home/jianzhihua/.ssh/id_rsa.pub,在192.168.246.170終端操作如下:
$ ssh-add -k /home/jianzhihua/.ssh/id_rsa
Identity added: /home/jianzhihua/.ssh/id_rsa (/home/jianzhihua/.ssh/id_rsa)
登錄時:
$ ssh -i /home/jianzhihua/.ssh/id_rsa [email protected]