我运行一个Ubuntu桌面,在VirtualBox中有一堆虚拟服务器来testing东西,等等。在过去,我也连接到其他types的远程VPS Linux机器。 目前我的.ssh/known_hosts
文件中有很多键,其中大部分都没有被使用。
我想清理我的.ssh/known_hosts
文件,但我怎么知道哪个键属于哪个主机? 也就是说,我怎么知道我可以安全地移除哪些键以及哪些键我应该离开?
要知道known_hosts中已知主机名的哪个条目,请执行以下操作:
# ssh-keygen -H -F <hostname or IP address>
要从known_hosts中删除单个条目,请执行以下操作:
# ssh-keygen -R <hostname or IP address>
如果你有一个你所有主机的列表,你可以做类似的事情
ssh-keyscan -t rsa,dsa -f list_of_hosts > ~/.ssh/known_hosts
这将覆盖您的.ssh / known_hosts文件与基于扫描主机的新生成的文件。
并且做其他的事情。 HashKnownHosts比这里的帮助更麻烦。
有困难…
Ubuntu默认哈希hostnames known_hosts文件(这不是默认的openssh行为),使读者很难知道你访问的是哪个系统。
如果你真的想清理文件,最简单的select可能只是删除它,并检查你知道的服务器的密钥,因为他们出现,但我真的只留下known_hosts。
您可以通过注释/ etc / ssh / ssh_config中的选项来阻止新主机条目被哈希
#HashKnownHosts yes