ssh原理
密码认证原理

-
服务器生成一对公私钥,
-
认证流程
-
客户端发送请求给服务器
-
服务器生成了一对公私钥,发送公钥给客户端
-
客户端使用这个公钥进行加密,发送给服务端
-
服务端通过私钥进行解密,认证成功后,就能连接上去了
-
免密认证原理
-
密钥认证,核心原理就是挑战--应答,服务器用一个问题来挑战客户端,只有正确回答问题的客户端才被证明拥有私钥
-
前提条件
-
客户端生成一对非对称密钥,公钥和私钥
-
客户端的公钥需要提前上传到服务器中的authorized_keys文件
-
客户端的私钥存储在本地上
-
-
认证流程
-
客户端声明一下,我向服务器发送一个请求,使用密钥认证
-
服务端还有发送一个公钥给客户端,保存到known_hosts文件中,下次连接时,验证一些服务器发来的公钥
-
客户端收到加密后,用自己的私钥进行解密这段密文,解密后,使用服务端的公钥进行加密发送给服务端
-
服务端验证,使用自己的私钥进行解密后,是否一致,如果一致,就能够连接上去了
-

-
如果一个服务器生成了一对公私钥,那么我把这个私钥发送给任何一个服务器,就能免密登录到这个服务器了
-
所以说要管理好自己的私钥文件,避免泄露
ssh文件详细
-
authorized_keys文件,这个发送别人发送公钥存储的文件
-
id_rsa文件,这个是私钥文件
-
id_rsa.pub 这个是公钥文件
-
kown_hosts 记录曾经连接过过的服务器公钥指纹,第一次连接,需要输入密码,后面再次进行连接,会核对服务器的公钥是否与这里一致,一致才连接,保存服务器发来的公钥,这个主要就是验证服务器的身份
