ssh登录原理及免输密码登录

先验知识

ssh登录需要用到公钥、秘钥,它们用于对文本内容进行加密或解密。通常用RSA加密方式,其是一种对称加密,由公钥加密的内容私钥可解密、由私钥加密的内容公钥也可解密。

通过ssh登录远程主机通常有两种登录方式:

1、输密码登录:每次登录都要输密码。内部原理:登录时服务端发送服务端自己的公钥给客户端,客户端用该公钥加密密码并发送到服务端,服务端用对应的私钥解密,检查密码是否正确以确定是否登录成功。

2、秘钥登录(免密码登录):预先配置好秘钥,之后每次登录无需输密码。方法是在一台机器上生成公钥/私钥对并将其中一个秘钥放到另一个机器上。有两种:

2.1、公钥登录:事先将客户端的公钥放到服务端上(本质上相当于配置免密登录白名单)。内部原理:登录时服务端发送一个随机字符串给客户端,客户端用自己的私钥加密并发送到服务端,服务端根据是否有事先存储的公钥能进行解密以确定是否登录成功。

2.2、私钥登录:事先将服务端的私钥放到客户端上,每次登录时需要指定私钥

前一种方式需要对服务端进行配置,若要免密登录的客户端很多,则需要频繁修改服务端配置;后一种可以避免频繁更改服务端,但比较不安全因为私钥是不宜外泄的,这种模式只要有私钥的人就能访问B,但是例如阿里云服务器就是这种访问方式。

猜你喜欢

转载自www.cnblogs.com/z-sm/p/10253933.html