1、進入到.ssh目錄
ssh .ssh
- 1
2、生成密鑰
ssh-keygen -t rsa
- 1
輸入以上命令之后,只需要一直回車即可。
3、配置無密鑰登陸,拷貝公鑰到其他節點
ssh-copy-id hadoop-series.bxp.com
- 1
其中hadoop-series.bxp.com是主機名,配置本機到hadoop-series.bxp.com的無密鑰登陸,也可以直接使用IP。
上面說的是怎樣生成密鑰並將公鑰發送到遠程主機。具體的細節以及無密鑰登陸的原理這里就不進行贅述,想了解的可以自行google或者度娘。
如果到這里您已經可以進行無密鑰登陸,就不必繼續往下看。
接下來要說的是 “有的主機只需要以上的操作即可以進行無密鑰訪問,有的主機卻仍然存在問題,仍然需要輸入密碼” 的解決辦法。
4、仍需要密碼登陸問題解決
如果A將公鑰拷貝到B,但是A登陸B仍然需要輸入密碼,此時應當修改B主機的配置文件。
(1)打開sshd_config配置文件
sudo vi /etc/ssh/sshd_config
- 1
(2)修改配置如下
#禁用root賬戶登錄,如果是用root用戶登錄請開啟 PermitRootLogin yes # 是否讓 sshd 去檢查用戶家目錄或相關檔案的權限數據, # 這是為了擔心使用者將某些重要檔案的權限設錯,可能會導致一些問題所致。 # 例如使用者的 ~.ssh/ 權限設錯時,某些特殊情況下會不許用戶登入 StrictModes no # 是否允許用戶自行使用成對的密鑰系統進行登入行為,僅針對 version 2。 # 至於自制的公鑰數據就放置於用戶家目錄下的 .ssh/authorized_keys 內 RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys # 有了證書登錄了,就禁用密碼登錄。 PasswordAuthentication no
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
(3)重啟sshd服務
/bin/systemctl restart sshd.service 或者 service sshd restart
- 1
- 2
- 3
5、如果在拷貝公鑰過程中出現“Agent admitted failure to sign using the key”異常,執行如下命令
ssh-add ~/.ssh/id_rsa
- 1
到這里,問題應該就得到解決了。