生成已知主机条目

生成已知主机条目

我想创建一个known_host条目,但是由于某些安全(权限)原因,在提示添加时无法直接添加它。

您确定要继续连接吗(是/否)-->无法回答是

想知道是否有办法生成条目(在命令行上打印),以便我可以手动将其放入known_hosts文件中。我有RSA密钥指纹。

为了解释这个问题,我可以指定自己的known_host条目文件来生成上述条目吗?

仅供参考:- 我也可以访问 ssh-keygen 命令,但 ssh-keyscan 和其他命令不可用。如果以上信息不够充分,请评论,我可以回答

答案1

您可以使用-ossh 命令的开关手动指定备用主机文件:

$ ssh -o UserKnownHostsFile=~/known_hosts.txt myserver

这会将内容放入known_hosts.txt您的主目录,或者您可以将其更改为您具有写权限的任何位置。

答案2

如果你使用这个:

ssh -o StrictHostKeyChecking=no server.example.net

你也许可以完全回避这个问题,但是谨防,通过这样做,您可以避免 SSH 用于验证远程主机身份的重要检查。您提到您有 RSA 指纹。使用此选项时,请检查它。

您询问如何“生成”要添加到 known_hosts 文件中的条目。我假设您使用的是 OpenSSH。

在您连接的每台服务器上,您需要找出远程主机的 SSH 密钥所在的位置。在 Linux 和 FreeBSD 中,所有内容都应位于 中/etc/ssh/。在 OSX 中,包括密钥在内的 SSH 配置都在 中/etc/。如果您不确定,您可以使用以下命令找到密钥:

find /etc/ -name ssh_host\*.pub -print

最有可能的是,你会得到如下结果:

/etc/ssh/ssh_host_dsa_key.pub
/etc/ssh/ssh_host_rsa_key.pub

远程服务器上这些文件的内容可以逐字添加到 ssh 客户端使用的 known_hosts 文件中。显然,如果您通常只使用一种类型的密钥,则可能不需要这两个文件的内容。

您问的另一个问题是是否可以指定备用的 known_hosts 文件。该问题的另一个答案为您提供了相关说明。

请注意,您还可以使用文件中的条目指定备用 known_hosts 文件~/.ssh/config。例如:

host cloudhost*
    UserKnownHostsFile ~/.ssh/known_hosts_cloud

如果您将所有主机密钥收集到命名文件中,并且拥有诸如 cloudhost1、cloudhost2、... 之类的主机名,这可能对您有用。

相关内容