ssh免密登陸相關配置
阿新 • • 發佈:2020-07-28
一 配置ssh祕鑰
在master,slave機器上都生成ssh如下:
[root@localhost ~]# su - postgres
[postgres@localhost ~]$ ssh-keygen -t rsa
[postgres@localhost ~]$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
[postgres@localhost ~]$ chmod 600 ~/.ssh/authorized_keys
分別將master的公鑰複製到slave,slave的公鑰複製到master。
#master端
[postgres@localhost ~]$ scp ~/.ssh/authorized_keys postgres@slave:~/.ssh/
#slave端
[postgres@localhost ~]$ scp ~/.ssh/authorized_keys postgres@master:~/.ssh/
驗證下ssh配置是否成功
#master端
[postgres@slave ~]$ ssh postgres@slave
Last login: Tue Dec 20 21:22:50 2016 from master
#slave端
[postgres@slave ~]$ ssh postgres@master
Last login: Tue Dec 20 21:22:50 2016 from slave
證明ssh信任關係配置成功。
二 SSH免密失敗原因定位分析
a)伺服器B上.ssh目錄的許可權必須是700
b)伺服器B上.authorized_keys檔案許可權必須是600或者644
c)伺服器B上使用者家目錄檔案許可權必須是700,比如使用者名稱是aischang,則/home/aischang這個目錄許可權必須是700
如果不是700,在伺服器A上檢視/var/log/secure檔案會報錯
- #原因
- sshd為了安全,對屬主的目錄和檔案許可權有所要求。如果許可權
- 不對,則ssh的免密碼登陸不生效。
d)伺服器B上SELinux關閉為disabled,可以使用命令修改setenforce 0 ,檢視狀態的命令為getenforce或者檢視/etc/selinux/config檔案中是否是disabled
e) 有可能是StrictModes問題
編輯vi /etc/ssh/sshd_config
找到#StrictModes yes改成StrictModes no
f) 有可能是PubkeyAuthentication問題
編輯vi /etc/ssh/sshd_config
找到PubkeyAuthentication改成yes
如果還不行,可以在伺服器A上用ssh -vvv機器B的ip檢視詳情,根據輸出內容具體問題具體分析了