[TOC]centos
一、使用root用戶登陸,進入到目錄/root/.sshbash
二、執行命令:ssh-keygen -t rsa服務器
一路回車,完成後會在目錄/root/.ssh下面生成文件 id_rsa和id_rsa.pubapp
三、將公鑰寫入文件authorized_keys:cat id_rsa.pub >> authorized_keys運維
四、重複一、二、3,直到要免密登陸的全部機器都生成了id_rsa和id_rsa.pub文件和authorized_keysssh
五、將其餘機器的公鑰拷貝到第一臺機器authorized_keys文件中:this
ssh-copy-id -i ~/.ssh/id_rsa.pub root@ip
centos7
六、將第一臺機器的authorized_keys複製到其餘機器spa
scp /root/.ssh/authorized_keys ip:/root/.ssh/
rest
提示報錯:Permission denied, please try again.
可能緣由:
一、目錄或文件沒有寫權限(默認不會),解決:chmod 700 .ssh chmod 644 authorized_keys
二、ssh服務須要修改下配置,解決:
修改目標服務器的/etc/ssh/sshd_config中的PermitRootLogin 爲 yes ,而後重啓ssh(systemctl restart sshd.service)
七、驗證(第一次需密碼)
ssh ip
注:上述實現了root用戶之間的免密操做,若是要實現其餘用戶,則使用其餘用戶登陸,進行上述操做,生成的密鑰文件會在用戶目錄下的.ssh下。
若是已經實現了一個用戶免密,要實現其餘用戶免密,能夠將實現免密的用戶下的.ssh目錄下的文件拷貝到其餘用戶下便可。
通常爲了方便運維管理都會配置ssh免密登陸,ssh免密登陸實現也很方便。今天遇到一個完成了配置了卻不能生效的問題。
遇到這個問題通常有如下幾點:
檢查AuthorizedKeysFile配置是否啓用authorized_keys
···bash
root@pts/1 $ cat /etc/ssh/sshd_config |egrep AuthorizedKeysFile AuthorizedKeysFile .ssh/authorized_keys
沒有問題,繼續檢查.ssh (700) 和 authorized_keys(644) 權限 ```bash root@pts/1 $ getfacl /root/.ssh/ getfacl: Removing leading '/' from absolute path names # file: root/.ssh/ # owner: root # group: root user::rwx group::--- other::--- root@pts/1 $ getfacl /root/.ssh/authorized_keys getfacl: Removing leading '/' from absolute path names # file: root/.ssh/authorized_keys # owner: root # group: root user::rw- group::--- other::---
authorized_keys 權限不對,修改一下chmod 644 authorized_keys
再次嘗試結果發現仍是不行。可是該設置的權限都設置了。既然.ssh目錄和其下文件的權限都OK了,那就檢查下其父目錄的權限,也就是這裏的/root的權限
root@pts/1 $ getfacl /root/ getfacl: Removing leading '/' from absolute path names # file: root/ # owner: ftpuser # group: ftpuser user::r-x group::r-x other::---
發現這裏/root 的屬主都發生了變化。爲了避免影響別的業務狀況,保留這裏的ftpuser權限,利用setfacl添加特殊ACL權限
root@pts/1 $ chown -R root:root /root/ root@pts/1 $ setfacl -m u:ftpuser:rwx /root/ root@pts/1 $ getfacl /root/ getfacl: Removing leading '/' from absolute path names # file: root/ # owner: root # group: root user::rwx user:ftpuser:rwx #effective:r-x group::r-x mask::r-x other::r-x
附加
權限問題
一、在幾臺主機搭好環境後,centos7系統,幾臺機器所有執行了ssh無密碼操做後,因爲 IP的問題而須要爲某一臺服務器從新配置IP,也就是換了一個IP可是主機名並無改變, ssh-copy-id dgb@ceph1 時就報瞭如下的錯誤
/bin/ssh-copy-id: ERROR: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ERROR: @ WARNING: POSSIBLE DNS SPOOFING DETECTED! @ ERROR: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ERROR: The ECDSA host key for ceph-admin has changed, ERROR: and the key for the corresponding IP address 192.168.0.10 ERROR: is unknown. This could either mean that ERROR: DNS SPOOFING is happening or the IP address for the host ERROR: and its host key have changed at the same time. ERROR: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ERROR: @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @ ERROR: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ERROR: IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! ERROR: Someone could be eavesdropping on you right now (man-in-the-middle attack)! ERROR: It is also possible that a host key has just been changed. ERROR: The fingerprint for the ECDSA key sent by the remote host is ERROR: 6e:77:fc:47:14:4c:98:46:c8:c8:49:01:a8:fe:83:ee. ERROR: Please contact your system administrator. ERROR: Add correct host key in /home/dgb/.ssh/known_hosts to get rid of this message. ERROR: Offending ECDSA key in /home/dgb/.ssh/known_hosts:4 ERROR: ECDSA host key for ceph-admin has changed and you have requested strict checking. ERROR: Host key verification failed.
解決辦法其實在報錯信息中已經存在了: ERROR: Add correct host key in /home/dgb/.ssh/known_hosts to get rid of this message. ERROR: Offending ECDSA key in /home/dgb/.ssh/known_hosts:4 查看/home/dgb/.ssh/known_hosts這個文件,裏面是: ceph-admin,192.168.0.10 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBFZgBm7r+RNOhGby8l+D57bXr/f1k055AlrlJcjlUQO9CMkNFZLGE32fcREG3EtmmrdPxlUXMX+ajzkaYbEa1rs= ceph1,192.168.0.11 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBFZgBm7r+RNOhGby8l+D57bXr/f1k055AlrlJcjlUQO9CMkNFZLGE32fcREG3EtmmrdPxlUXMX+ajzkaYbEa1rs= ceph2,192.168.0.12 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBFZgBm7r+RNOhGby8l+D57bXr/f1k055AlrlJcjlUQO9CMkNFZLGE32fcREG3EtmmrdPxlUXMX+ajzkaYbEa1rs= ceph3,192.168.0.13 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBFZgBm7r+RNOhGby8l+D57bXr/f1k055AlrlJcjlUQO9CMkNFZLGE32fcREG3EtmmrdPxlUXMX+ajzkaYbEa1rs= ceph4,192.168.0.14 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBDhXt1f/8evGZ4U7RBqV8bRi6O/ZcZvmWjPyZA6HQsFQF9M0Y2Usq3VvTW46dWaaNRMpRbwzmUYLwADV/RsXm1c= ceph-rgw2,192.168.0.30 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBFlk04wCYYRhNqPrGlyUt7OTPhE1yU33+CWo1iTXJj7c+aU87z2saGGnTqCylQmz+yAdO7vMPGsIin5GqxODnkA=
找到之前的IP而且刪除,而後再作ssh-copy-id操做便可。