美文网首页
Linux机器不依赖密码的通信

Linux机器不依赖密码的通信

作者: 何妨吟啸且徐行1 | 来源:发表于2019-01-04 20:05 被阅读0次

      在部署环境过程中发现linux服务器之间的通信总是需要密码,解决问题的办法是在目标机器的authorized_keys里配置自己机器的公钥,当目标机器找到这个公钥后,访问就不需要密码了。

    源机器可能需要的操作:
    # 如果机器尚未生成公钥,先运行命令生成
    ssh-keygen -t rsa -C comment
    #执行完上面的命令,在.ssh目录下会生成两个文件:id_rsa   id_rsa.pub
    -rw------- 1 root root 1675 Jan  4 14:42 id_rsa
    -rw-r--r-- 1 root root  394 Jan  4 14:42 id_rsa.pub
    # 读取公钥
    cat .ssh/id_rsa.pub
    ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAxn6laEjJvDaG7YAoQ9Ulm3eicMwzp80b7ose+k/kUTdUsxlPQG3g7vjMJOjBX6YQbeyE541lsdY8CR59ay4SGYNo0AT/RMI9byTQctGwdECvxW4LdZdT7nXugLACahUqYvlI/XlMPBIDwmhOMjCHRMGJ2Ak7x4aWbeSpWtjR5H0bHO25I9JouU8WNRqn95IIJc+onf6a5tlVUoGK+XZWrOz7RKPuUuXwJ/0KXpoWlq+i7pPUL5Gpz4cEE7g7WNkpIU/zMMXMh/T+9X0f+04/5IhLZmA7sFky3+WxpYoWtEfckZ8oGz4BlurTYdIIMxwfO/I9rlgNTeclZZSCbXw== comment
    
    目标机器可能操作:
    # 如果之前没有配置过公钥证书,那么authorized_keys文件可能是不存在的,先创建一个
    touch authorized_keys
    # 在sshd_config里可以看到公钥证书管理文件的路径
    vim /etc/ssh/sshd_config
    /AuthorizedKeysFile     .ssh/authorized_keys
    # 配置authorized_keys,把原机器的公钥写配置
    cd /root/.ssh
    vim authorized_keys
    

      在配置完成后,再次访问目标机器,不再需要密码。
      如果配置完成后仍然不能访问,可以排查一下authorized_keys的访问权限:

    # 查看.ssh目录和authorized_keys文件的访问权限
    drwx------.  2 root root      4096 1月   4 19:33 .ssh
    -rw-------  1 root root 2999 1月   4 15:03 authorized_keys
    

      一般来说,.ssh目录的权限必须是700,而authorized_keys文件权限必须是600,但是已经我的服务器上文件的访问权限满足上述要求,还是不能访问,于是再次修改:

    # .ssh目录的权限不变=700,authorized_keys文件的权限修改为644
    chmod 644 ~/.ssh/authorized_keys
    drwx------.  2 root root      4096 1月   4 19:33 .ssh
    -rw-r--r--  1 root root 2999 1月   4 15:05 authorized_keys
    #需要注意的是,只能是root用户可以写authorized_keys,其他用户不可以开放写的权限,不然可能报错
    

      修改完成后,再次访问目标机器,不再需要密码。

    相关文章

      网友评论

          本文标题:Linux机器不依赖密码的通信

          本文链接:https://www.haomeiwen.com/subject/tqqkrqtx.html