大家好,我是菜鸟程序员Chivalry,今天要和大家分享的是如何编写免密脚本,在前两篇文章中介绍了SSH登录以及免密登录的原理,想了解的小伙伴欢迎查看。
为了照顾基础薄弱的小伙伴,我打算从头详细讲解一下SSH相关的知识点。
(1)SSH是一种加密的网络传输协议,提供安全的数据传输服务。一般用ssh-genkey生成生成公钥和密钥,这两个文件会默认保存在~/.ssh/路径下。常用的参数为:
如下图所示:
公钥和私钥
其中:
id_rsa是私钥文件
id_rsa.pub是公钥文件
authorized_keys用于存放客户端公钥的文件
known_hosts是确认过公钥指纹的可信服务器列表的文件
当主机作为服务器时,有客户端连接时,则将客户端的公钥放在authorized_keys中;当主机作为客户端时,则将访问过得主机的公钥放在known_hosts中,也就是说ssh会将每个访问过的主机公钥(public key)都存放在~/.ssh/known_hosts中。
(2)再来说一下什么是公钥检查
当我们第一次连接远程主机时,会弹出该主机的公钥摘要,询问我们是否信任该主机,如下图所示:
远程主机公钥摘要
输入yes,该主机公钥摘要就会被记录在本机的~/.ssh/known_hosts中。
很多时候我们并不需要公钥摘要确认,那可以使用:
ssh -o StrictHostKeyChecking=no remote_host_ip
(3)好了,知道了上面的基础知识点,我们就可以写免密脚本了。如下图所示:
免密脚本
后续我会推出更多关于shell脚本内容的文章,欢迎喜欢的小伙伴订阅收藏!