我在 Virtual Box 中运行带有一堆虚拟服务器的 Ubuntu 桌面来测试内容等等。过去我也一直连接到其他类型的远程 VPS Linux 机器。目前我的.ssh/known_hosts文件中有一大堆密钥,其中大部分不再使用。
我想清理我的.ssh/known_hosts文件,但我怎么知道哪个密钥属于哪个主机?即我怎么知道哪些键我可以安全地移除,哪些我应该不理会?
mik*_*ner 78
要找出 known_hosts 中已知主机名的条目:
# ssh-keygen -H -F <hostname or IP address>
Run Code Online (Sandbox Code Playgroud)
从 known_hosts 中删除单个条目:
# ssh-keygen -R <hostname or IP address>
Run Code Online (Sandbox Code Playgroud)
fre*_*eit 28
如果您有所有主机的列表,则可以执行以下操作
ssh-keyscan -t rsa,dsa -f list_of_hosts > ~/.ssh/known_hosts
Run Code Online (Sandbox Code Playgroud)
这将使用基于扫描主机的新生成的文件覆盖您的 .ssh/known_hosts 文件。
并且按照theotherreceive的建议去做;HashKnownHosts 在这里比帮助更烦人。
the*_*ive 27
有困难...
默认情况下,Ubuntu 对known_hosts 文件的主机名进行哈希处理(这不是默认的openssh 行为),以使任何阅读该文件的人都难以知道您访问的是哪些系统。
如果您真的想清除文件,最简单的选择可能是删除它并在出现时检查您知道的服务器的密钥,但实际上我只是不理会known_hosts。
您可以通过注释掉 /etc/ssh/ssh_config 中的选项来阻止新主机条目被散列
#HashKnownHosts yes
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
148788 次 |
| 最近记录: |