目 录CONTENT

文章目录

ssh免密登陆原理

Administrator
2025-08-04 / 0 评论 / 0 点赞 / 5 阅读 / 0 字
温馨提示:
部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

ssh免密登陆原理

1. 概述

SSH 免密登录是一种通过非对称加密技术实现的安全登录方式,允许用户在不输入密码的情况下登录到远程服务器。其原理主要涉及公钥和私钥的生成、分发和验证过程。

2. 对称加密和非对称加密

2.1 对称加密

对称加密使用相同的密钥进行数据的加密和解密。在SSH免密登录中,通常不直接使用对称加密来传输密码或会话数据,因为这样做需要事先在网络上安全地交换密钥,这在安全性方面存在挑战。
通俗的讲,对称加密的密钥是相同的。用同一把钥匙加密和解密。

2.2 非对称加密

非对称加密使用一对公钥和私钥,其中公钥可以公开分发而私钥必须保密。常用的算法有RSA、DSA等。
公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。
通俗的讲,非对称加密的公钥和私钥是不同的。用一把钥匙加密的信息只能用另一把钥匙解密。

2.2.1 公钥(Public Key):

  • 可以自由分发给任何人。
  • 用于加密信息,只有对应的私钥能解密。

2.2.2 私钥(Private Key):

  • 需要严格保密,仅由用户持有。
  • 用于解密用公钥加密的信息,或者签名信息以证明信息的来源。

非对称加解密

3. SSH免密登录原理

ssh免密登陆原理]

4. 具体步骤

4.1 生成密钥对

首先,用户需要在本地机器上生成一对公钥和私钥。这个过程通常使用ssh-keygen命令完成。

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
  • -t rsa:指定使用RSA算法生成密钥对。
  • -b 4096:指定密钥长度为4096位,增加安全性。
  • -C "your_email@example.com":添加注释,通常是用户的电子邮件地址。

执行上述命令后,系统会提示用户输入密钥的存储路径和密码(可选)。默认情况下,生成的密钥对会存储在~/.ssh/目录下:

  • ~/.ssh/id_rsa:私钥文件,必须保密。
  • ~/.ssh/id_rsa.pub:公钥文件,可以公开。

4.2 将公钥复制到远程服务器

接下来,用户需要将生成的公钥文件(id_rsa.pub)的内容复制到远程服务器的~/.ssh/authorized_keys文件中。这个过程可以通过多种方式完成,最常见的是使用ssh-copy-id命令。

ssh-copy-id user@remote_host

执行上述命令后,系统会提示用户输入远程服务器的密码。ssh-copy-id会将本地公钥文件的内容追加到远程服务器的~/.ssh/authorized_keys文件中。

4.3 免密登录

当用户在服务器A尝试通过SSH登录到服务器B时,以下步骤会自动进行:

  • 服务器A发起连接请求
    用户在服务器A上执行ssh user@remote_host命令,SSH客户端会向服务器B发起连接请求。
  • 服务器B发送随机字符串
    服务器B接收到连接请求后,会生成一个随机字符串,并使用服务器A的公钥对其进行加密,然后将加密后的字符串发送给服务器A。
  • 服务器A使用私钥解密
    服务器A接收到加密后的字符串后,使用本地存储的私钥对其进行解密,得到原始的随机字符串。
  • 服务器A发送解密后的字符串
    服务器A将解密后的随机字符串发送回服务器B。
  • 服务器B验证
    服务器B接收到服务器A发送的解密后的字符串后,会与之前生成的随机字符串进行比对。如果两者一致,说明服务器A拥有与公钥对应的私钥,验证通过,允许用户登录。
0
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin

评论区