【问题标题】:I deleted the known_hosts file from .ssh folder and I can't pull or push in BitBucket repositories我从 .ssh 文件夹中删除了 known_hosts 文件,但无法拉入或推送 BitBucket 存储库
【发布时间】:2013-03-20 21:52:37
【问题描述】:

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

我该如何解决?

【问题讨论】:

    标签: git ssh key bitbucket


    【解决方案1】:

    尝试执行:

    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

    【讨论】:

    【解决方案2】:

    "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 命令)就足以再次触发该消息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-05
      • 1970-01-01
      • 2013-06-17
      • 2014-06-04
      相关资源
      最近更新 更多