![生成已知主机条目](https://linux22.com/image/1312452/%E7%94%9F%E6%88%90%E5%B7%B2%E7%9F%A5%E4%B8%BB%E6%9C%BA%E6%9D%A1%E7%9B%AE.png)
我想创建一个known_host条目,但是由于某些安全(权限)原因,在提示添加时无法直接添加它。
您确定要继续连接吗(是/否)-->无法回答是
想知道是否有办法生成条目(在命令行上打印),以便我可以手动将其放入known_hosts文件中。我有RSA密钥指纹。
为了解释这个问题,我可以指定自己的known_host条目文件来生成上述条目吗?
仅供参考:- 我也可以访问 ssh-keygen 命令,但 ssh-keyscan 和其他命令不可用。如果以上信息不够充分,请评论,我可以回答
答案1
您可以使用-o
ssh 命令的开关手动指定备用主机文件:
$ 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、... 之类的主机名,这可能对您有用。