• SSH 免密登录


    免密登录原理

    img

    ​ 即在源服务器上先生成一份公钥和一份密钥,将公钥复制到目标服务器,利用命令将公钥添加至目标服务器的授权列表(authorized_keys)。当有服务器带着公钥申请连接服务器时,目标服务器首先在authorized_keys中查找是否存在该公钥,如果存在则开始进行验证。首先生成一个随机字符串,利用对应公钥进行加密,然后返回给申请连接的服务器,申请连接服务器利用私钥进行解密,再将字符串返回给目标服务器完成验证,进行后续操作。

    实际操作

    具体步骤:

    1. 生成密钥对
    2. 将公钥上传至需要登录的主机的授权列表 (authorized_keys)
    3. 建立连接时携带公钥

    需要登录的主机:例子中为 crayonsea.top

    1. 客户端生成密钥对

    ssh-keygen -t rsa # 加密方式 rsa
    

    上述命令会在 ~/.ssh/ 下生成 id_rsa id_rsa.pub

    2. 上传公钥到服务器

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

    在目标服务器上可查看操作结果

    cd ~/.ssh
    vi authorized_keys
    

    3. 测试免密登录

    ssh root@crayonsea.top
    

    不能登录的解决方法

    实际操作中,可能会出现,在目标服务器的 authorized_keys 中已经写入公钥,却不能免密登录的情况。可以在两个地方尝试进行修改:(需要登录的服务器上 crayonsea.top

    1. 修改 /etc/ssh/sshd_config 文件内容

    StrictModes no
    AuthorizedKeysFile .ssh/authorized_keys
    

    删除 ~/.ssh/known_hosts

    2. 修改 authorized_keys 文件权限

    chmod 700 authorized_keys
    

    1 和 2 操作完成后可以重启一下 ssh,再次尝试

    service sshd restart
    

    参考

  • 相关阅读:
    11月28日总结
    12月06日总结
    12月02日总结
    11月26日总结
    12月05日总结
    11月30日总结
    软件设计职责链模式
    软件设计策略模式
    软件设计组合模式
    大数据竞赛练习题二
  • 原文地址:https://www.cnblogs.com/crayonsea/p/12706939.html
Copyright © 2020-2023  润新知