• ssh登录原理及免密登录配置


    ssh登录原理参考: https://www.cnblogs.com/hukey/p/6248468.html

    ssh登录有两种方式:

      1):用户名密码登录

      2):基于秘钥的登录

    ssh免密登录指的就是第二种---基于秘钥的登录

    登录流程:

      (1) 首先在客户端生成一对密钥(ssh-keygen);

      (2) 并将客户端的公钥ssh-copy-id 拷贝到服务端;

      (3) 当客户端再次发送一个连接请求,包括ip、用户名;

      (4) 服务端得到客户端的请求后,会到authorized_keys中查找,如果有响应的IP和用户,就会随机生成一个字符串,例如:qwer;

      (5) 服务端将使用客户端拷贝过来的公钥进行加密,然后发送给客户端;

      (6) 得到服务端发来的消息后,客户端会使用私钥进行解密,然后将解密后的字符串发送给服务端;

      (7) 服务端接受到客户端发来的字符串后,跟之前的字符串进行对比,如果一致,就允许免密码登录。

    所以免密登录配置需要将客户端的公钥复制到服务端。

    1.生成秘钥:

    在客户端执行下面的脚本

    ssh-keygen -t rsa -b 4096

    一路enter即可。最终会在用户目录下的.ssh文件夹下生成一个秘钥对:id_rsa和id_rsa.pub,其中id_rsa是私钥,id_rsa.pub这个是公钥。

    2.将公钥复制到服务端

    在客户端执行下面的脚本

    ssh-copy-id -i /root/.ssh/id_rsa.pub '-p 22  kduser@172.20.69.38'

    此时会要求输入kduser登录服务端时的密码。

    然后可以用  ssh kduser@172.20.69.38 测试是否配置成功。

    3.配置了免密登录仍然需要输入密码的解决方法

    一般来说,前两步就应该能正常登录,但是很不幸,我测试时让要我输入密码。

    经过查看日志和搜索得知,是因为服务端用户目录权限配置的问题

    执行下面的命令即可:

    chmod 755 /home/kduser/
    chmod 700 /home/kduser/.ssh/
    chmod 644 /home/kduser/.ssh/authorized_keys

    然后就可以免密登录了。

      

    原因

    sshd为了安全,对属主的目录和文件权限有所要求。如果权限不对,则ssh的免密码登陆不生效。
    用户目录权限为 755 或者 700,就是不能是77x。
    .ssh目录权限一般为755或者700。
    rsa_id.pub 及authorized_keys权限一般为644
    rsa_id权限必须为600

  • 相关阅读:
    8皇后问题
    求1到n,n个整数的全排列
    求最小周期串
    如何用java完成一个中文词频统计程序
    蛇形矩阵
    第一个算法程序
    java 继承练习题8
    java 继承练习题7
    java 继承练习题6
    java 继承练习题5
  • 原文地址:https://www.cnblogs.com/zsxneil/p/10058621.html
Copyright © 2020-2023  润新知