乐趣区

关于运维:如何自动接受SSH密钥指纹

首次连贯到 Linux 零碎时,SSH 会提醒你承受计算机的指纹以胜利建设连贯,因为“known_hosts”文件中没有指纹。
如何主动承受 SSH 密钥指纹?如何主动承受 SSH 密钥指纹?
指纹是零碎公钥的缩写版本,为了爱护本人免受中间人攻打(MITM),ssh 程序应用自上次连贯以来存储的指纹验证近程零碎 ssh 的指纹。如果指纹已更改,零碎将揭示你并询问是否要持续。

有时你可能须要主动承受 SSH 指纹。例如,如果创立了一个 shell 脚本用来远程管理多台 linux 服务器。

能够应用以下两种办法来实现此操作。

应用 StrictHostKeyChecking=no 选项主动承受 ssh 指纹。
应用 ssk-keyscan 命令承受 ssh 指纹。
首次连贯到近程计算机时,将正告你无奈建设主机的真实性,并提供密钥指纹以进行验证。
如何主动承受 SSH 密钥指纹?如何主动承受 SSH 密钥指纹?
承受指纹后,它将被保留在“known_hosts”文件中,当从新连贯到同一个近程主机时,SSH 依据 known_hosts 文件查看指纹,以验证其身份。

1、如何应用 SSH 选项主动承受 SSH 密钥指纹?
此办法简单明了,只需应用 SSH 命令增加选项即可实现。应用此选项时,ssh 会主动将新的主机密钥增加到用户 known_hosts 文件中。

[root@localhost ~]# ssh -o “StrictHostKeyChecking no” localhost
Warning: Permanently added ‘localhost’ (ECDSA) to the list of known hosts.
root@localhost’s password:
Last login: Mon Jan 25 20:01:53 2021 from 192.168.43.1
如何主动承受 SSH 密钥指纹?如何主动承受 SSH 密钥指纹?
以上正告表明它已将一个密钥增加到 known_host 文件。
如何主动承受 SSH 密钥指纹?如何主动承受 SSH 密钥指纹?

2、如何应用 ssk-keyscan 命令主动承受 SSH 密钥指纹?
这是另一种办法,ssh-keycan 容许你将 ssh 指纹附加到 known_hosts 文件中。当你想要批量增加时,此工具十分有用。应用上面命令操作:

[root@localhost ~]# ssh-keyscan -H 192.168.43.138 >> ~/.ssh/known_hosts

192.168.43.138:22 SSH-2.0-OpenSSH_7.4

192.168.43.138:22 SSH-2.0-OpenSSH_7.4

192.168.43.138:22 SSH-2.0-OpenSSH_7.4

应用以下命令将多台近程主机的 ssh 指纹增加到 known_hosts。必须将近程主机的 IP 地址增加到一个文件中,并应用 ssh-keyscan 命令调用它,如下所示,将各个近程服务器的 ip 地址保留在文本文件外面:

[root@localhost ~]# cat remote-hosts.txt
192.168.43.137
192.168.43.138
192.168.43.166
而后应用 ssh-keyscan 工具将它们的 ssh 指纹增加到 known_hosts:

[root@localhost ~]# ssh-keyscan -f ./remote-hosts.txt >> ~/.ssh/known_hosts

192.168.43.138:22 SSH-2.0-OpenSSH_7.4

192.168.43.137:22 SSH-2.0-OpenSSH_7.8

192.168.43.137:22 SSH-2.0-OpenSSH_7.8

192.168.43.137:22 SSH-2.0-OpenSSH_7.8

192.168.43.138:22 SSH-2.0-OpenSSH_7.4

192.168.43.138:22 SSH-2.0-OpenSSH_7.4

192.168.43.166:22 SSH-2.0-OpenSSH_7.4

192.168.43.166:22 SSH-2.0-OpenSSH_7.4

192.168.43.166:22 SSH-2.0-OpenSSH_7.4

如何主动承受 SSH 密钥指纹?如何主动承受 SSH 密钥指纹?

总结
首次连贯到 Linux 零碎时,SSH 会提醒你承受计算机的指纹以胜利建设连贯,因为“known_hosts”文件中没有指纹。

退出移动版