Linux SSH公钥认证配置

ssh支持两种认证方式:密码认证和公钥认证。若没有配置公钥认证,则每次ssh连接时都需要输入密码,不仅麻烦而且还不安全,因此推荐配置公钥认证,只需在配置时输入一次密码,之后ssh连接就无需输入密码了。

 

公钥认证配置只需在ssh客户端机子上配就可以:

 

1.在客户端机子上生成公钥id_rsa.pub和私钥id_rsa(默认存在当前用户主目录的.ssh/下),输入ssh-keygen,有三次询问,直接回车即可。


 

 2. 把公钥复制到ssh server上,这个步骤其实就是刚生成的id_rsa.pub的内容追加到ssh server 的 ../.ssh/authorized_keys 文件下

 

 

这个步骤需要输入一次ssh server的密码,执行完成后再以ssh方式登陆时就不需要再输入密码了:

 

 

配置完毕.

 

公钥认证说明:

使用ssh-keygen程序生成公钥 id_dsa.pub 和私钥 id_dsa,一般是在客户端上生成,然后把 id_dsa.pub 通过某种方式发送给服务端。

服务端放在将要远程登录过来的那个账号的目录的.ssh目录下面。

       客户端使用密钥和算法协商阶段生成的会话密钥加密账号、认证方法、id_dsa.pub,将结果发送给服务端。

       服务端使用会话密钥解密报文,得到账号、id_dsa.pub。    服务端在这个账号的目录的.ssh目录下找对应的公钥,如果没有找到,发送失败消息给客户端,如果找到,比较客户发送过来的这个公钥和找到的公钥,如      果内容相同,服务端生成一个随机的字符串,简称“质询”,然后使用找到的公钥加密这个质询,然后使用会话密钥再次加密。

       服务端把这个双重加密的数据发送给客户端。

       客户端使用会话密钥解密报文,然后使用id_dsa再次解密数据,得到质询。

       客户端使用会话密钥加密质询,发送给服务端。

       服务端使用会话密钥解密报文,得到质询,判断是不是自己生成的那个质询,如果不相同,发送失败消息给客户端,如果相同,认证通过

posted @ 2017-10-26 17:18  wssw  阅读(540)  评论(0编辑  收藏  举报