centos ssh 免密碼登陸linux
這裏爲了方便說明問題,假設有A和B兩臺安裝了centos6.5的主機。目標是實現A、B兩臺主機分別可以經過ssh免密碼登陸到對方主機。不一樣主機的配置過程同樣,這裏介紹A主機的配置過程。vim
事先在AB主機分別建立好要免密碼登陸的用戶名,在/etc/hosts文件增長主機名和ip。centos
建立新用戶: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
關閉selinux。到/etc/selinux/config下,把SELINUX=enforcing修改成SELINUX=disabled 。須要root權限。服務器
# su root Password: $ vim /etc/selinux/config 找到SELINUX並修改成SELINUX=disabled
關閉防火牆iptablesssh
service iptables stop(服務器重啓後會失效) chkconfig iptables off(重啓自動關閉防火牆)
$ vim /etc/ssh/sshd_config 找到如下內容,並去掉註釋符「#」 RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys
$ /sbin/service sshd restart 或 /etc/init.d/sshd restart
從root切換回要免密碼登陸的用戶jay,執行命令。測試
# ssh-keygen -t rsa
默認在用戶jay的家目錄(~/.ssh/)生成兩個文件:
id_rsa: 私鑰
id_rsa.pub:公鑰調試
# cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
完成這一步,再按照步驟4修改相關文件權限,能夠免密碼登陸本機。能夠輸入如下命令驗證。rest
ssh localhost
若是可以登陸,即驗證成功。日誌
# scp ~/.ssh/id_rsa.pub root@目標主機ip或主機名:/home/id_rsa.pub
注意把文件傳送到目標主機時,要用root用戶,不然會因權限不夠而拒絕。輸入目標主機密碼後,出現OK即傳輸成功。code
使用要被免密碼登陸的用戶名jay,登陸到目標主機。而後執行如下操做。
# cat /home/id_rsa.pub >> ~/.ssh/authorized_keys
再按照步驟4修改相關文件權限,完成免密碼登陸設置。
# chmod 700 ~/.ssh # chmod 600 ~/.ssh/authorized_keys
至此,完成免密碼登陸設置。
A主機(jay@master),B主機(jay@slave1)。在A主機,切換爲jay用戶,執行如下命令測試:
ssh slave1 或者ssh -v jay@slave1 (-v 調試模式,顯示登錄信息)
可以免密碼直接登陸,即設置成功,之後就能夠用"ssh user@host"直接免密碼登錄了。如失敗或者仍然要輸入密碼,能夠在服務器查看日誌文件:/var/log/secure查找緣由。
而後請再仔細檢查以上各個步驟,若是發現步驟沒有錯但仍是不行,就把服務器重啓而後嘗試免密碼登陸(本人以前配置的時候就遇到過相似的狀況,重啓服務器後就能夠免密碼登陸了)。