我犯了一个错误并删除了“.ssh”文件夹中的“known_hosts”文件!现在我无法拉动或推入BitBucket存储库。
我该如何解决?
答案 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 pull
或git 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命令)应该足以再次触发该消息。