免密登陆
一、理论基础
对称加密:用同一个密钥能进行加密和解密过程;速度较快;传输不安全
非对称加密:需要两个密钥分别进行加密和解密,公开密钥和私有密钥;加解密速度较慢;传输相对安全
公钥负责加密,私钥负责解密
二、ssh
ssh基于TCP连接。使用公开密钥体制进行ssh账号密码验证。
连接过程
- 建立tcp连接
- 客户端填写账号发出连接请求
- 服务器返回其公钥,可能会进行保存
- 客户端输入密码用用该公钥对密码进行加密
- 加密后的信息发送到服务器
- 服务器用私钥对加密后的信息进行解密
- 将密码与shadow下的密码进行比对
- 密码一致则连接上服务器
三、使用公钥登陆,免去密码输入
ssh-keygen
可以获取主机的公钥和秘钥,默认是rsa公开密钥体制。
不使用服务器的公私钥,而改用客户端的公私钥,因为需要事先将客户端的公钥放到服务器上,所以已经证明是合法的机器只需要进行一些判断,不需要输入密码
配置步骤
- 客户端使用ssh-keygen获得其公私钥,默认保存在.ssh中
- 将公钥id_rsa.pub内容追加到服务器对应账号的.ssh的authorized_keys里
- 自己保留私钥一份
连接过程
- 建立tcp连接
- 客户端发送连接请求
- 服务器生成一个随机数,用客户端的公钥进行加密并将其传输到客户端
- 客户端用私钥将数字解密出来,使用算法对其生成一个摘要1发送到服务端
- 服务端也使用相同算法对数字生成一个摘要2,与接受到的摘要1进行对比,相同则进行连接