Linux服务器配置ssh免密登陆
Linux服务器配置免密登陆
- 一、 原理
- 二、 客户端生成公钥私钥对
- 三、 服务器配置公钥
一、 原理
经常登陆服务器每次都需要输入密码是一件很繁琐的事,于是ssh免密登陆配置帮我们简化了这个过程。
 ssh免密登基于公钥密码学中的非对称加密技术,允许客户端向服务证明自己的身份。
 整个过程可以分为两个阶段,准备阶段和认证阶段
 准备阶段:客户端生成公钥和私钥,同时将客户端生成的公钥放到服务器的一个指定位置~/.ssh/authorized_keys,可以将公钥比喻成锁,私钥比喻成钥匙,服务器上放置公钥相当于有一个锁,客户端有私钥,相当于钥匙。
验证阶段:
- 客户端发起请求,使用公钥认证登陆
- 服务器发起挑战,服务器在~/.ssh/authorized_keys中查找客户端声称拥有的公钥,并随机生成一个字符串,用公钥进行加密后传回客户端。
- 客户端响应:由于公钥和私钥是配对的,公钥加密的数据只有对应的私钥可以解密,客户端使用私钥进行解密,并将解密内容传回服务器。
- 服务器进行验证:服务器验证客户端发来的数据和自己原来随机生成的是否一致
上述过程就完整描述了服务器如何通过公钥密钥对客户端进行身份验证。
二、 客户端生成公钥私钥对
使用下面命令生成公钥私钥对
ssh-keygen

 生成后~/.ssh目录下会有下面的两个文件,其中id_ed25519.pub 就是生成的公钥,id_ed25519就是配对的私钥。
三、 服务器配置公钥
将公钥文件放到服务器~/.ssh/authorized目录下即可,如果服务器的home家目录下没有这个目录则创建对应目录放进去即可。
 
至此就完成了ssh免密登陆的配置。
