背景
最近项目组的源码仓库迁移。本着“偷懒”的精神,两个仓库我用了一个ssh的pubkey,在新仓库中使用tortoiseGit来clone、pull、push代码没有问题。但是,想使用vscode的git拓展的时候报错“Git: host key verification failed”。
探索
这个问题我在网上搜索了两三个小时,发现原因是~/.ssh/known_hosts
文件中没有新仓库的配置。
[xx.xxx.com]:22,[192.168.0.1]:22 ssh-rsa xxxxx+r+M0LAyzaSV5u8rDf45yHK1H8T+PSfoq1FxzdhqmFIarAIneLSYlyit/nqiTI6jSHVKdUAMaOjKPCiMHddubDLYfvf0sF29tNthhzFMTDNX9qy5WvkDGHn5FNUwkFPJLbIJ+xuBJfgmvf+HhDvwVyo45Ip9kiz+Uv/2HtAavHRaJnYMERVHCsGW5gkSmOZ44BVv+OK+zrIqjQik72Umu5xX/wMDkKO6+i1SJYGA+94kw232xY5DNCrhgYVxifP
于是我复制了老仓库的配置,修改前边的ip参数。
[xx.xxx.com]:22,[192.168.0.1]:22 ssh-rsa xxx+r+M0LAyzaSV5u8rDf45yHK1H8T+PSfoq1FxzdhqmFIarAIneLSYlyit/nqiTI6jSHVKdUAMaOjKPCiMHddubDLYfvf0sF29tNthhzFMTDNX9qy5WvkDGHn5FNUwkFPJLbIJ+xuBJfgmvf+HhDvwVyo45Ip9kiz+Uv/2HtAavHRaJnYMERVHCsGW5gkSmOZ44BVv+OK+zrIqjQik72Umu5xX/wMDkKO6+i1SJYGA+94kw232xY5DNCrhgYVxifP
[xx.xxx.com]:22,[192.168.0.2]:22 ssh-rsa xxxx+r+M0LAyzaSV5u8rDf45yHK1H8T+PSfoq1FxzdhqmFIarAIneLSYlyit/nqiTI6jSHVKdUAMaOjKPCiMHddubDLYfvf0sF29tNthhzFMTDNX9qy5WvkDGHn5FNUwkFPJLbIJ+xuBJfgmvf+HhDvwVyo45Ip9kiz+Uv/2HtAavHRaJnYMERVHCsGW5gkSmOZ44BVv+OK+zrIqjQik72Umu5xX/wMDkKO6+i1SJYGA+94kw232xY5DNCrhgYVxifP
做验证,发现还是不行。
再去搜索问题,终于找到解决方法,参考链接。
该方法使用的是GitGui来自动添加仓库的known_hosts配置,具体步骤如下:
- 在已克隆好的代码仓库,右键点击“Git Gui here”
- 点击Git Gui工具栏“Remote”,点击“Fetch from > origin”
- 弹出的对话框中输入“yes”,点击“ok”确定操作
至此已经完成了新仓库known_hosts的配置添加,可在~/.ssh/known_hosts
文件中查看。
如果代码还没有克隆下来,也可以直接使用GitBah,可以达到同样的效果,同样参看参考链接。