SSH免密脚本的编写

SSH免密脚本的编写

游戏|数码彩彩2024-03-21 7:44:10397A+A-

用最简单易懂的话,说最难的知识点!

大家好,我是菜鸟程序员Chivalry,今天要和大家分享的是如何编写免密脚本,在前两篇文章中介绍了SSH登录以及免密登录的原理,想了解的小伙伴欢迎查看。

为了照顾基础薄弱的小伙伴,我打算从头详细讲解一下SSH相关的知识点。

(1)SSH是一种加密的网络传输协议,提供安全的数据传输服务。一般用ssh-genkey生成生成公钥和密钥,这两个文件会默认保存在~/.ssh/路径下。常用的参数为:

  • -t: 指定生成密钥类型(rsa、dsa)。默认为rsa
  • -f: 指定存放私钥的文件,公钥文件名为私钥文件名加.pub后缀。默认为id_rsa
  • -P: 指定passphrase(私钥的密码),用于确保私钥的安全。默认为空
  • -C: 备注。默认为user@hostname

如下图所示:

SSH三部曲之三详细介绍SSH免密脚本的编写

公钥和私钥

其中:

id_rsa是私钥文件

id_rsa.pub是公钥文件

authorized_keys用于存放客户端公钥的文件

known_hosts是确认过公钥指纹的可信服务器列表的文件

当主机作为服务器时,有客户端连接时,则将客户端的公钥放在authorized_keys中;当主机作为客户端时,则将访问过得主机的公钥放在known_hosts中,也就是说ssh会将每个访问过的主机公钥(public key)都存放在~/.ssh/known_hosts中。

(2)再来说一下什么是公钥检查

当我们第一次连接远程主机时,会弹出该主机的公钥摘要,询问我们是否信任该主机,如下图所示:

SSH三部曲之三详细介绍SSH免密脚本的编写

远程主机公钥摘要

输入yes,该主机公钥摘要就会被记录在本机的~/.ssh/known_hosts中。

很多时候我们并不需要公钥摘要确认,那可以使用:

ssh -o StrictHostKeyChecking=no remote_host_ip

(3)好了,知道了上面的基础知识点,我们就可以写免密脚本了。如下图所示:

SSH三部曲之三详细介绍SSH免密脚本的编写

免密脚本

后续我会推出更多关于shell脚本内容的文章,欢迎喜欢的小伙伴订阅收藏!

点击这里复制本文地址 版权声明:本文内容由网友提供,该文观点仅代表作者本人。本站(https://www.angyang.net.cn)仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

昂扬百科 © All Rights Reserved.  渝ICP备2023000803号-3网赚杂谈