zoukankan      html  css  js  c++  java
  • centos7:ssh免密登陆设置及常见错误

    一、免密登录设置

    1、使用root用户登录,进入到目录/root/.ssh

    2、执行命令:ssh-keygen -t rsa

    一路回车,完成后会在目录/root/.ssh下面生成文件 id_rsa和id_rsa.pub

    3、将公钥写入文件authorized_keys:cat id_rsa.pub >> authorized_keys

    4、重复1、2、3,直到要免密登录的所有机器都生成了id_rsa和id_rsa.pub文件和authorized_keys

    5、将其他机器的公钥拷贝到第一台机器authorized_keys文件中:

    ssh-copy-id -i ~/.ssh/id_rsa.pub root@ip

    6、将第一台机器的authorized_keys复制到其他机器

    scp /root/.ssh/authorized_keys ip:/root/.ssh/

    提示报错:Permission denied, please try again.

    可能原因:

    1、目录或文件没有写权限(默认不会),解决:chmod 700 .ssh chmod 644 authorized_keys

    2、ssh服务需要修改下配置,解决:

    修改目标服务器的/etc/ssh/sshd_config中的PermitRootLogin 为 yes ,然后重启ssh(systemctl restart sshd.service)

    7、验证(第一次需密码)

    ssh ip

    注:上述实现了root用户之间的免密操作,如果要实现其他用户,则使用其他用户登录,进行上述操作,生成的密钥文件会在用户目录下的.ssh下。

    如果已经实现了一个用户免密,要实现其他用户免密,可以将实现免密的用户下的.ssh目录下的文件拷贝到其他用户下即可。

    二、常见错误

    一般为了方便运维管理都会配置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

    三、CentOS7再ssh-copy-id时的错误

    1、在几台主机搭好环境后,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操作即可。

  • 相关阅读:
    POJ 3672 水题......
    POJ 3279 枚举?
    STL
    241. Different Ways to Add Parentheses
    282. Expression Add Operators
    169. Majority Element
    Weekly Contest 121
    927. Three Equal Parts
    910. Smallest Range II
    921. Minimum Add to Make Parentheses Valid
  • 原文地址:https://www.cnblogs.com/yj411511/p/11529968.html
Copyright © 2011-2022 走看看