什么是公钥认证?
当我们在使用ssh远程登录服务器时,主要分为两个认证过程:
- 主机验证过程
- 身份验证过程
其中身份验证过程按验证的先后顺序有以下五种方法:
- gssapi-with-mic:
- hostbased:
-此认证方式不安全且大大增加认证时间,建议到配置文件/etc/ssh/sshd.config中进行更改。 - publickey:
-此认证方式即为公钥认证。我们推荐使用这种方法进行认证。 - keyboard-interactive
- password:
-密码认证。初始状态时是以这种方式登录的,但不推荐使用这种方法。与其他认证方法相比,自动脚本可以轻松破解正常长度的密码。
为什么推荐使用公钥认证?
-
使用这种方式更加的安全。
-由于这种认证方式的实验需要得到对方的公钥,且在连接前会使用少量的数据包用到了最为安全的非对称算法进行验证。使得验证过程极为安全准确。 -
更加快速且避免交互
-公钥认证过程中并不需要密码的输入,避免了交互,便于我们写脚本文件。
公钥认证的原理
为了简化过程,将客户端称为A,服务端称为B。
- A生成其公私钥并向B发送用于认证的公钥
- B将A的公钥保存起来。
- 当A请求远程登录B时,B会使用A的公钥对一小段数据(称为M)进行加密得到随机数N,将N发给A。
- A使用自己的私钥对N进行解密,得到了数据M1,对M使