我从.ssh文件夹中删除了known_hosts文件,我不能拉或推入BitBucket存储库

时间:2013-03-20 21:52:38

标签: git ssh key bitbucket

我犯了一个错误并删除了“.ssh”文件夹中的“known_hosts”文件!现在我无法拉动或推入BitBucket存储库。

我该如何解决?

2 个答案:

答案 0 :(得分:13)

尝试执行:

ssh -T git@bitbucket.org

它会给你一些信息,如:

The authenticity of host 'bitbucket.org (207.223.240.181)' can't be established.
RSA key fingerprint is 97:8c:1b:f2:6f:14:6b:5c:3b:ec:aa:46:46:74:7c:40.
Are you sure you want to continue connecting (yes/no)? yes

验证主机指纹后说yes(详见最后的详细信息)。

然后你应该得到这个警告,你可以安全地忽略它:

Warning: Permanently added 'bitbucket.org,207.223.240.181' (RSA) to the list of known hosts.
conq: logged in as tuxdude.

You can use git or hg to connect to Bitbucket. Shell access is disabled.

尝试再次运行git pullgit push,这次应该可以正常运行。

注意:我假设您仍然安全地拥有.ssh/id_rsa文件,这是您进行SSH身份验证的私钥。

验证主机指纹

正如@Pascal_dher指出的那样,如果您不验证主机的指纹(使用一些您可以依赖的带外方法),您可能会成为中间人攻击的受害者。对于bitbucket,信息为available here

答案 1 :(得分:3)

"using ssh with BitBucket" page开始,下次使用ssh时应重新创建known_hosts个文件:

  

Bitbucket主机只允许Git和Mercurial建立SSH连接   第一次使用SSH URL访问Bitbucket时,SSH客户端会检查Bitbucket主机是否为已知主机。如果主机不在您的~/.ssh/known_hosts文件中,SSH会警告您它正在​​将Bitbucket主机添加到已知主机:

$ hg clone ssh://hg@bitbucket.org/newuserme/mquotefork testkey
The authenticity of host 'bitbucket.org (207.223.240.182)' can't be established.
RSA key fingerprint is 97:8c:1b:f2:6f:14:6b:5c:3b:ec:aa:46:46:74:7c:40.
Are you sure you want to continue connecting (yes/no)? 
  

如果您查看已存储的已知主机的内容,您会发现实际密钥以base64编码格式存储:

bitbucket.org,207.223.240.182 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAubiN81eDcafrgMeLzaFPsw2kNvEcqTKl/VqLat/MaB33pZy0y3rJZtnqwR2qOOvbwKZYKiEO1O6VqNEBxKvJJelCq0dTXWT5pbO2gDXC6h6QDXCaHo6pOHGPUy+YBaGQRGuSusMEASYiWunYN0vCAI8QaXnWMXNMdFP3jHAJH0eDsoiGnLPBlBp4TNm6rYI74nMzgz3B9IikW4WVK+dc8KZJZWYjAuORU3jc1c/NPskD2ASinf8v3xnfXeukU0sJ5N6m5E8VLjObPEO+mN2t/FZTMZLiFqPWc/ALSqnMnnhwrNi2rbfg/rd/IpL8Le3pSBne8+seeFVBoGqzHM9yXw==

所以简单地使用ssh地址(或只是ssh命令)应该足以再次触发该消息。