目前我正在研究由我的大学主办的项目。我们使用git作为版本控制工具,当我第一次连接到主机时,它显示以下消息: “警告:永久性地将'...'(RSA)添加到已知主机列表中。”
这究竟意味着什么?
作业完成后,如何从已知主机列表中删除它?如果我不这样做有什么问题吗?
答案 0 :(得分:9)
如果某些内容已经添加到“已知主机列表”中,那么在Windows下的git bash shell中以及linux下,将在 known_hosts 文件中添加一个条目,该条目可以在。主目录下的ssh目录。
这是一个文本文件,将显示已添加的任何主机名/ IP地址/密钥组合的条目。
所以
cat ~/.ssh/known_hosts
应显示以下文件
您可能会看到类似于以下内容的内容
removelater.com,123.456.789.10 key-of-key charactersRepresentingTheKeyForRemoveLaterHost keep.com,321.654.987.10 ssh-rsa differentSetOfCharactersRepresentingKeyForKeepHost ==
上面的文件有两行。
使用您喜欢的编辑器(例如vi ~/.ssh/known_hosts
或notepad ~/.ssh/known_hosts
),只需删除包含您要删除的主机引用的完整行并保存文件。
尝试再次连接到您已删除的主机将再次导致
无法确定主机'removelater.com(123.456.789.10)'的真实性。
答案 1 :(得分:3)
从 known_hosts 中删除一台主机的最简单方法是使用:
ssh-keygen -R hostname
示例
ssh-keygen -R 192.168.1.10
ssh-keygen -R abc.lan
ssh-keygen -R domain.com
答案 2 :(得分:1)
这意味着git已经使用SSH为您登录远程主机,并且之前从未连接到该服务器,因此它将服务器添加到已知主机列表中。如果服务器更改其身份(例如,您的连接被攻击者截获),则SSH将拒绝连接到它。
除非你是偏执狂并希望有人试图窃取你的密码或你的工作,否则没有必要担心这个问题。
答案 3 :(得分:0)
以下是我在Mac上用来从known_host文件中删除特定主机的快速重写:
grep -v <full.hostname> ~/.ssh/known_hosts > temp.txt
mv temp.txt ~/.ssh/known_hosts
这基本上重写了known_hosts文件中的所有内容,但包含指定主机名的行除外。