linux系统中的ssh协议免密登录原理
ssh协议的有密登录和无密登录
ssh有密登录的缺点
我们自己在开发的时候,使用的linux系统数量较少,对于密码的记忆还是比较方便的。
而在工作中面临着的可能不止几个linux系统,为了linux系统环境的安全,用户名和密码是必不可少的。
那么要记住那么多的密码显然是不太实际的,大大降低工作效率。
而对于公司的一些大佬来说,使用无密码登录显然更方便他们操作数个,百个,上千个linux系统。所以得对无密登录有所了解。
无密登录
在众多的linux系统中,显然无密登录能够提高我们的工作效率,并且安全。
无密登录的原理
- 无密登录中第一次登录必须使用用户名密码,以后的登录则不需要;
- 在第一次的登录中,linux一号会生成一对密钥(公钥和私钥);
- 公钥:用于加密数据得到密文;私钥:用于对密文进行解密得到原始数据。;
- 私钥保存在linux一号自身,将自身的公钥和linux二号的密码发送给linux二号;
- linux二号接收linux一号的公钥并保存;
- linux一号通过ip或者域名执行ssh登录;
- linux二号验证这个登录请求是否是一号发送的,如果是就允许登录,否则需要提供账号密码(验证过程会利用随机算法得到一个字符串,使用linux一号的的公钥进行加密形成密文,并且生成自身的linux二号的一对公钥和密钥);
- 将加密好的密文发送给linux一号,并携带自身的公钥;
- linux一号接收密文和linux二号的公钥。用自身的密钥对密文进行解密得到字符串,再通过linux二号的公钥对字符串进行加密,返回发送密文给linux二号;
- 最后linux二号接收到密文,能够用自身的密钥对密文进行解密,将解密后的数据与第7点中利用随机算法生成的字符串做对比,如果相同,则说明这个登录是linux一号的请求,允许免密登录,否则必须提供账号和密码。
原理图加以了解
/