云网牛站
所在位置:首页 > Linux安全 > 在Linux下用SSH选项和ssk-keyscan命令自动接受SSH密钥指纹

在Linux下用SSH选项和ssk-keyscan命令自动接受SSH密钥指纹

2020-12-22 16:08:44作者:李哲稿源:云网牛站

本文介绍在Linux下自动接受SSH密钥指纹的方法,可使用SSH选项(StrictHostKeyChecking=no)或ssk-keyscan命令,以下将详细介绍。

 

前言

SSH Secure Shell是一种加密网络协议,可在两个主机之间提供安全的加密通信。它使您可以通过不安全的网络安全地连接到远程计算机。参考在Debian 10上设置SSH密钥,包括介绍使用SSH密钥登录到服务器

首次连接到Linux系统时,SSH会提示您接受计算机的指纹以成功建立连接,因为“known_hosts”文件中没有指纹。指纹是系统公钥的简化版本。

为了保护自己免受中间人攻击(MITM),ssh程序将使用自上次连接以来存储的指纹来验证远程系统ssh的指纹。

如果指纹已更改,则会提醒您并询问您是否要继续。否则,将允许您直接登录。但是有时您可能需要自动接受SSH指纹。例如,如果您创建了一个Shell脚本以在多台计算机上运行以提取报告。

注意:您正在通过以下方法有效地绕过SSH预期的安全性。在内部网络上使用它的危险性较小,但不建议在公共Internet或其他不受信任的网络上使用它。

可以使用以下两种方法来完成此操作。

1]、通过ssh命令使用“StrictHostKeyChecking=no”选项自动接受ssh指纹。

2]、自动使用ssk-keycan命令接受ssh指纹。

首次连接到远程计算机时,将警告您无法建立主机的真实性,并提供密钥指纹以进行验证:

$ ssh root@192.168.1.4

The authenticity of host '192.168.1.4 (192.168.1.4)' can't be established.

ECDSA key fingerprint is 6a:75:e3:ac:5d:f8:cc:04:01:7b:ef:4d:42:ad:b9:83.

Are you sure you want to continue connecting (yes/no/[fingerprint])? yes

Warning: Permanently added '192.168.1.4' (ECDSA) to the list of known hosts.

root@192.168.1.4's password:

Last login: Mon Dec 14 14:16:51 2020 from 192.168.1.6

接受指纹后,它将被保存在“known_hosts”文件中。当重新连接到同一远程主机时,SSH将根据known_host文件检查指纹以验证其身份。如果这匹配,则只要密钥保持不变,就可以直接访问系统。

如果指纹与known_hosts不匹配,您将看到以下警告。如果主机公钥由于某些原因发生更改,则会发生这种情况。

如果您看到下面的警告,请仔细检查您实际上是在通过安全连接与正确的主机连接。尽管大多数情况下它是无害的,但这可能表明存在潜在问题。如下截图:

在Linux下用SSH选项和ssk-keyscan命令自动接受SSH密钥指纹

 

1、如何使用SSH选项自动接受SSH密钥指纹

此方法简单直接,要实现此目的,只需使用SSH命令添加选项即可。

使用此选项时,ssh会自动将新的主机密钥添加到用户known_host文件,并允许其使用修改后的主机密钥托管连接以连接到远程系统:

$ ssh -o "StrictHostKeyChecking no" 192.168.1.5

Warning: Permanently added 'centos7,192.168.1.5' (ECDSA) to the list of known hosts.

ok

但是,以上警告表明它已将一个密钥添加到known_host文件。

 

2、如何使用ssk-keyscan命令自动接受SSH密钥指纹

这是另一种方法,非常简单。ssh-keycan工具允许您将ssh密钥指纹附加到远程服务器上的user-known_host文件中。当您要添加批量时,此工具非常有用。

在调用脚本中的实际命令之前,必须将该命令插入到Shell脚本中。

使用以下格式将ssh密钥指纹添加到远程主机:

$ ssh-keyscan -H 192.168.1.4 >> ~/.ssh/known_hosts

#centos:22 SSH-2.0-OpenSSH_7.4

使用以下格式将ssh密钥指纹添加到多个主机。

为此,必须将远程主机详细信息添加到文件中,并使用ssh-keycan命令按如下所示调用它。例如,我在“remote-hosts.txt”文件中添加了五台主机。

您可以使用任何文本编辑器添加条目。我建议您使用vim编辑器,这是Linux管理员和开发人员广泛使用的最灵活、功能最强大的文本编辑器,参考玩转Linux必备的Vim技能,一文读懂Vim的安装和配置,学习之法

# vi remote-hosts.txt

192.168.1.2

192.168.1.3

192.168.1.4

192.168.1.5

192.168.1.6

如果是,则ssh-keyscan命令如下:

$ ssh-keyscan -f /tmp/remote-hosts.txt >> ~/.ssh/known_hosts

#centos:22 SSH-2.0-OpenSSH_7.4

#centos:22 SSH-2.0-OpenSSH_7.4

#centos:22 SSH-2.0-OpenSSH_7.4

#centos:22 SSH-2.0-OpenSSH_7.4

#centos:22 SSH-2.0-OpenSSH_7.4

 

相关主题

云服务器相同系统镜像模板中OpenSSH密钥相同的处理方法

精选文章
热门文章