centos7:ssh免密登錄設置及常見錯誤

[TOC]centos

1、免密登陸設置

一、使用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@ipcentos7

六、將第一臺機器的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目錄下的文件拷貝到其餘用戶下便可。

2、常見錯誤

通常爲了方便運維管理都會配置ssh免密登陸,ssh免密登陸實現也很方便。今天遇到一個完成了配置了卻不能生效的問題。

遇到這個問題通常有如下幾點:

  • authorized_keys文件是否啓用
  • .ssh 和 authorized_keys 文件權限問題

檢查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

附加

權限問題

  • /root 775
  • /root/.ssh 700
  • /root/.ssh/authorized_keys 644
  • 開啓文件AuthorizedKeysFile .ssh/authorized_keys

3、CentOS7再ssh-copy-id時的錯誤

一、在幾臺主機搭好環境後,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操做便可。

相關文章
相關標籤/搜索