Centos6.5之ssh免密碼登錄配置
centos ssh 免密碼登錄
0.說明
這里為了方便說明問題,假設有A和B兩台安裝了centos6.5的主機。目標是實現A、B兩台主機分別能夠通過ssh免密碼登錄到對方主機。不同主機的配置過程一樣,這里介紹A主機的配置過程。
事先在AB主機分別創建好要免密碼登錄的用戶名,在/etc/hosts文件增加主機名和ip。
創建新用戶:useradd jay
設置密碼:passwd jay,輸入自己想要的密碼即可,之后su jay切換用戶
修改主機名:vim /etc/sysconfig/network,加入hostname=master,注銷系統之后即可看到修改成功
修改hosts文件:vim /etc/hosts
192.168.88.101 master
192.168.88.102 slave1
1.環境設置
1.1 關閉防火牆(root權限)
關閉selinux。到/etc/selinux/config下,把SELINUX=enforcing修改為SELINUX=disabled 。需要root權限。
# su root
Password:
$ vim /etc/selinux/config
找到SELINUX並修改為SELINUX=disabled
關閉防火牆iptables
service iptables stop(服務器重啟后會失效)
chkconfig iptables off(重啟自動關閉防火牆)
1.2 修改sshd的配置文件(root權限)
$ vim /etc/ssh/sshd_config
找到以下內容,並去掉注釋符“#”
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
1.3 重啟sshd服務(root權限)
$ /sbin/service sshd restart
或 /etc/init.d/sshd restart
2.本機生成公鑰和私鑰
從root切換回要免密碼登錄的用戶jay,執行命令。
# ssh-keygen -t rsa
默認在用戶jay的家目錄(~/.ssh/)生成兩個文件:
id_rsa: 私鑰
id_rsa.pub:公鑰
3.把公鑰導入到認證文件
3.1 導入到本機
# cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
完成這一步,再按照步驟4修改相關文件權限,可以免密碼登錄本機。可以輸入以下命令驗證。
ssh localhost
如果能夠登錄,即驗證成功。
3.2 導入到目標主機
3.2.1在本機操作,傳送到目標主機
# scp ~/.ssh/id_rsa.pub root@目標主機ip或主機名:/home/id_rsa.pub
注意把文件傳送到目標主機時,要用root用戶,否則會因權限不夠而拒絕。輸入目標主機密碼后,出現OK即傳輸成功。
3.2.2 登錄到目標主機,把公鑰導入到認證文件
使用要被免密碼登錄的用戶名jay,登錄到目標主機。然后執行以下操作。
# cat /home/id_rsa.pub >> ~/.ssh/authorized_keys
再按照步驟4修改相關文件權限,完成免密碼登錄設置。
4.更改相關文件的權限
# chmod 700 ~/.ssh
# chmod 600 ~/.ssh/authorized_keys
至此,完成免密碼登錄設置。
5. 測試
A主機(jay@master),B主機(jay@slave1)。在A主機,切換為jay用戶,執行以下命令測試:
ssh slave1
或者ssh -v jay@slave1 (-v 調試模式,顯示登陸信息)
能夠免密碼直接登錄,即設置成功,以后就可以用"ssh user@host"直接免密碼登陸了。如失敗或者仍然要輸入密碼,可以在服務器查看日志文件:/var/log/secure查找原因。
然后請再仔細檢查以上各個步驟,如果發現步驟沒有錯但還是不行,就把服務器重啟然后嘗試免密碼登錄(本人之前配置的時候就遇到過類似的情況,重啟服務器后就可以免密碼登錄了)。