当您尝试进行更改时,如何在git中删除有问题的键?


40

我已经进行了大量搜索并测试了不同的解决方案,但没有成功!

当我想推送代码时,出现以下错误:

Warning: the ECDSA host key for 'git.mywebsite.ir' differs from the key for the IP address '164.138.23.11'
Offending key for IP in /home/alireza/.ssh/known_hosts:10
Matching host key in /home/alireza/.ssh/known_hosts:1
Are you sure you want to continue connecting (yes/no)? yes

每次推送更改时,我应该怎么做才能删除此消息?任何的想法?

钥匙清单

Answers:


83

它说:

/home/alireza/.ssh/known_hosts中IP的违规密钥:10

因此,由于某些原因,您必须删除known_hosts中的第十行。

运行以下命令以删除known_hosts中的第10行:

sed -i '10d' ~/.ssh/known_hosts

或使用 ssh-keygen

ssh-keygen -R git.mywebsite.ir

来自男人的报价

 -R hostname
         Removes all keys belonging to hostname from a known_hosts file.
         This option is useful to delete hashed hosts (see the -H option
         above).

6
ssh-keygen -R git.mywebsite.ir解决了我的问题。
ALH 2014年

不适用于我,它一直在问问题。
Waruna Ranasinghe 2014年

2
sed -i'1d'〜/ .ssh / known_hosts或手动删除行号。为我做的工作
萨米特·库马尔·萨哈

如果您是在Mac的终端机上运行此程序,则必须执行sed -i'''10d'〜/ .ssh / known_hosts以避免“ l命令末尾的多余字符”错误,因为它需要要指定的扩展名。
路加福音

如果要基于IP地址删除密钥:ssh-keygen -R [ipaddress]:port。删除端口3456上的192.168.0.1密钥的示例:ssh-keygen -R [192.168.0.1]:3456
Oki Erie Rinaldi

0

您必须编辑您的known_hosts文件(位于〜/ .ssh / known_hosts中)并删除与此地址关联的条目。


该IP地址在known_hosts文件中不存在。
ALH 2014年

1
是的,可能有一个带有git.mywebsite.ir URL和另一个IP地址的条目。您应该从known_hosts删除此行,然后新的IP地址将与此主机名关联。
kulak 2014年

在known_hosts文件中没有任何网站URL。我什至在文件中找不到git。你能看一下上面的图片吗?
ALH 2014年

0

当我收到消息时:

/home/myusername/.ssh/known_hosts中IP的违规密钥:12

注意行号-就我而言-12

因此,打开“ known_hosts”文件并删除第12行。

对我来说,这解决了问题。

Ps注意,如果找不到.ssh文件夹-.ssh文件夹是隐藏的,并且要从文件管理器中查看它,则必须“显示隐藏的文件和文件夹”。在Linux Mint中(也可能在您的发行版中),在文件管理器中-有显示/隐藏隐藏文件夹的快捷方式-> Ctrl + H

干杯

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.