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操作即可。

  • 相关阅读:
    ODBC SQLSetConnectAttr
    Red Hat Enterprise Linux 8配置YUM源的两种方式
    red hat register
    下载和安装Red Hat Enterprise Linux 8.1(RHEL 8.1)
    SQL Server doc infomation
    SQL Server ODBC Download
    Linux install ODBC
    ODBC [Microsoft][ODBC Sql Server Driver][TCP/IP Sockets]SQL Server 不存在或访问被拒绝。
    想看的小说
    (转载) Navicat for MySQL 15注册与激活
  • 原文地址:https://www.cnblogs.com/yj411511/p/11529968.html
Copyright © 2011-2022 走看看