免密登录的原理是使用公钥加密技术(非对称加密)来实现身份验证。下面是免密登录的基本原理
- 生成密钥对:用户在本地生成一对密钥,通常是RSA密钥对。这对密钥包括两部分:公钥和私钥。公钥是可以分享的,而私钥必须保持私密。
- 复制公钥到远程服务器:用户将生成的公钥复制到远程服务器上,通常是将公钥追加到远程服务器上的
~/.ssh/authorized_keys
文件中。 - SSH连接:当用户尝试通过SSH连接到远程服务器时,客户端会发送请求以建立连接。远程服务器会检查请求中的公钥,并查找匹配的私钥。如果找到匹配的私钥,服务器会使用私钥进行解密,并与客户端发送的随机数据进行比较。
- 身份验证:如果比较成功,服务器将确认用户的身份,并允许连接。这是因为只有私钥持有者才能成功解密并提供正确的随机数据。这是一种强大的身份验证方法,因为私钥只应该由授权的用户拥有。
- 建立会话:一旦身份验证成功,SSH会话将建立,允许用户在远程服务器上执行命令或传输文件,而不需要再次输入密码。
免密登录的关键在于,私钥始终保持在本地,并且不应泄漏给其他人。公钥是安全的,可以在多个服务器上共享,因为它只能用于验证用户的身份,而无法用于生成私钥。这种方式提供了更高的安全性,因为即使公钥被泄漏,仍然需要私钥才能成功连接到服务器。
总的来说,免密登录的原理是通过公钥和私钥的加密和解密过程,以及与远程服务器上的公钥匹配来实现安全的身份验证,从而允许用户无需密码登录到远程系统。
具体操作如下:
现在有A、B两台机器,现在目的为A机器可以免密登录B机器
1、在A机器生成自己的公钥和私钥
#执行然后一路默认回车
ssh-keygen -t rsa
这将生成一个RSA密钥对,默认情况下存储在您的用户主目录下的~/.ssh
目录中
2、将公钥复制到远程机器(这个过程需要输入机器B的密码或者密钥以验证)
ssh-copy-id 机器B的登录账号@机器B的IP
3、在机器A测试是否可正常登录到机器B通过免密的方式
机器B的登录账号@机器B的IP
复杂配置可参考:https://blog.csdn.net/zt15732625878/article/details/119558733
原创文章,作者:witersen,如若转载,请注明出处:https://www.witersen.com