• 通过ssh远程登录linux的原理过程和配置免密登录


    1.总结通过ssh远程登录linux的原理过程

    基于口令的认证
    • 客户端和服务端建立TCP连接
    协商阶段
    • 双方进行ssh版本协商
    密钥协商阶段
    • 在服务器端生成一对密钥,将公钥传递给客户端,客户端将密钥C用服务端的公钥进行加密后传递给服务端,服务端用私钥解密得到密钥C。
    认证阶段
    1. 使用密钥C将用户名加密后发送给服务端
    2. 服务端使用密钥C解密后确认用户名存在,应答信息
    3. 客户端使用密钥C加密登录密码后发送给服务端
    4. 服务端使用密钥C解密后,确认身份,成功登录。
    通信阶段
    • 数据通信阶段,双方用密钥C加密通信。
    基于密钥的认证
    1. 在客户端生成生成一对密钥,将公钥传送到服务端上。
    2. 客户端和服务端建立TCP连接
    协商阶段
    • 双方进行ssh版本协商
    密钥协商阶段
    • 在服务器端生成一对密钥,将公钥明文传递给客户端,客户端将密钥C用服务端的公钥进行加密后传递给服务端,服务端用私钥解密得到密钥C。
    认证阶段
    1. 客户端发送请求使用密钥进行认证并将自己的公钥发送给服务端
    2. 服务端收到请求与公钥后,与自己本地的公钥进行比对,如果一样,则生成一段随机值并用公钥加密,发送给客户端。
    3. 客户端收到后用私钥进行解密,将解密后的数据发送给服务端。
    4. 服务端确认后,成功登录。
    数据通信阶段
    • 基于密钥C进行通信。

    2.配置两台主机的远程连接实现免密登陆

    1. 根据密钥认证的流程,首先在客户端上生成一对密钥。使用ssh-keygen命令创建密钥对。
    ssh-keygen -t rsa # -t选项可以指定密钥类型
    
    • 1

    image-20221017220046543

    1. 将公钥发送给服务端,可以使用命令ssh-copy-id直接发送,也可以使用scp命令进行传输。
    ssh-copy-id -i [公钥文件] [用户@域名/IP]  #ssh-copy-id命令
    scp [文件] [用户@域名/IP]:[目录]  #scp命令
    
    • 1
    • 2

    image-20221017221916710
    3. 最后使用ssh登录作验证

    image-20221017222506452

  • 相关阅读:
    windows11系统没有系统散热方式的解决办法
    JAVA面试题之恒生电子
    如何通过快鲸scrm解决线索管理难、线索浪费严重等问题
    合宙esp32c3不带串口芯片的型号如何arduino和micropython
    【漏洞复现】redis未授权访问
    Shell 学习笔记 - 导读 + 变量定义
    上周热点回顾(10.17-10.23)
    Vue2 .sync修饰符的应用
    C. Rotation Matching
    代码随想录 第八章 二叉树:二叉搜索树
  • 原文地址:https://blog.csdn.net/qq_57353607/article/details/127378546