关键词

禁用远程主机对SSH的公钥进行检查的方法

禁用远程主机对SSH公钥进行检查的方法是通过修改SSH客户端配置文件来实现。具体步骤如下:

1. 打开SSH客户端配置文件

在终端中打开SSH客户端配置文件 ~/.ssh/config (如果该文件不存在,可以创建一个)

vi ~/.ssh/config

2. 添加配置内容

在配置文件中添加以下内容:

Host *
StrictHostKeyChecking no
UserKnownHostsFile=/dev/null
  • Host *:表示对所有主机都禁用公钥检查
  • StrictHostKeyChecking no:表示禁用严格主机密钥检查
  • UserKnownHostsFile=/dev/null:表示禁用对已知的主机密钥进行验证,并且将所有主机都视为未知主机

保存配置文件并退出。

示例说明

示例一:连接GitHub

假设有一台Ubuntu主机需要从GitHub拉取代码并执行构建部署等操作。如果不禁用公钥检查,可能会在第一次连接时遇到以下错误:

The authenticity of host 'github.com (207.97.227.239)' can't be established.
RSA key fingerprint is SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.
Are you sure you want to continue connecting (yes/no)?

这个提示会在 SSH 连接时出现,告诉你当前连接的主机没有在本地 SSH 客户端的证书列表中,会询问是否要添加该主机并信任其 SSH 证书。如果选择“yes”,会将主机添加到本地证书列表,以前会对该主机进行验证。由于常规的 SSH 连接大多数情况下都是交互式的,这个提示并不会对正常的操作产生太多影响。但是,如果需要通过脚本或其他工具自动化执行 SSH 连接,这个交互环节显然是不利于执行的。

为了解决这个问题,可以通过禁用公钥检查来实现自动化 SSH 连接,示例如下:

Host github.com
    User git
    Hostname github.com
    IdentityFile ~/.ssh/id_rsa
    StrictHostKeyChecking no
    UserKnownHostsFile=/dev/null

在上面的示例中,添加了一个名为“github.com”的主机,并对该主机禁用了公钥检查,这样我们就可以无交互的方式连接 GitHub 了。

示例二:连接内网主机

假设需要连接一个内网主机,该主机可能无法被任何外部计算机所访问,因此在首次连接该主机时可能会出现以下错误:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

这样的错误提示意味着远程主机的 SSH 公钥被修改或更换过,因此需要重新验证。如果确定公钥是正确的,可以通过禁用公钥检查来实现 SSH 连接,示例如下:

Host internal_host
    User john
    Hostname 192.168.1.10
    StrictHostKeyChecking no
    UserKnownHostsFile=/dev/null

在上面的示例中,添加了一个名为“internal_host”的主机,并对该主机禁用了公钥检查,这样我们就可以无交互地连接内网主机了。但需要注意的是,禁用公钥检查存在安全风险,因此在一定程度上降低了安全性。建议在非必须的情况下尽量不要禁用公钥检查。

本文链接:http://task.lmcjl.com/news/13746.html

展开阅读全文