ssh免秘钥实现及其原理

SSH免秘钥登录 就是避免了主机之间ssh需要输用户名和密码这一步。

先理解三个名称 公钥(id_dsa.pub)、私钥(id_dsa)、授权列表文件(authorized_keys)  

 

实现方法:以A B两台机器为例

1. AB两台机器分别生成各自的公钥(id_dsa.pub)+私钥(id_dsa)

使用ssh-keygen命令,rsa|dsa两种加密方法,任意选一个。

# ssh-keygen -t dsa  然后全部默认回车;在 ~/.ssh目录下查看生成了 id_dsa.pub+id_dsa

2.将A的公钥内容添加到B机器的授权列表文件(authorized_keys)

 id_dsa.pub 拷贝到B机器的 ~/.ssh/authorized_keys中 (内容重定向追加到文件中)

---两步就可以实现A机器ssh免秘钥登录B机器啦

 

3.将B的公钥内容添加到A机器的授权列表文件(authorized_keys)

---三步就可以实现AB机器ssh免秘钥互相登录啦

 

登录原理过程:以A机器ssh登录B机器为例。

1.A向B发送登录请求

2.B 在自己的授权列表中查看是否有A的公钥;没有则拒绝A登录

3.B中有A公钥,则B随机生成一个字符串,并用A的公钥进行加密,发送给A

4.A 收到加密后的字符串,用自己的私钥进行解密,得到原始字符串,返回给B

5.B 对比字符串,如果一致就授权A登录。 A登录B 成功。

 

 

-----------------------有兴趣可以自行了解下列名词。

对称加密 / 非对称加密   、dsa / rsa  、known_hosts

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章