Git 为每次推送继续构建我的 'known_hosts' 文件

标签 git amazon-web-services github aws-codecommit

我创建了一个本地 git 存储库,我想将其推送到 Github 和 Amazon 的 CodeCommit。

我设置了两个 Remote 并相应地命名了它们:

git remote add github git@github.com:mygit/myrepo.git

git remote add codecommit ssh://git-codecommit.us-west-2.amazonaws.com/v1/repos/myrepo

Github 存储库运行良好。 CodeCommit 存储库有效,但每次我运行推送时:

git push -u codecommit master

每次推送它都会添加到我的“~/.ssh/known_hosts”文件中。如果我继续,我的“已知主机”文件中将有一百万个条目。

我能看到的唯一区别是 CodeCommit 远程链接上的格式,它与 Github 格式略有不同,如上所示。当您在 CodeCommit 上创建存储库时,它会提供一个远程链接:

git clone ssh://git-codecommit.us-west-2.amazonaws.com/v1/repos/myrepo

由于我将本地 git 存储库推送到 CodeCommit,我删除了“git clone”部分并将其替换为:

git remote add codecommit ssh://git-codecommit.us-west-2.amazonaws.com/v1/repos/myrepo

CodeCommit 还要求您创建一个“~/.ssh/config”文件:

Host git-codecommit.*.amazonaws.com
  User Your-IAM-SSH-Key-ID-Here
  IdentityFile ~/.ssh/Your-Private-Key-File-Name-Here

我按照说明创建了这个文件。

有人在使用两个远程服务器(Github 和 CodeCommit)时遇到过这个问题吗?

最佳答案

可能是 CodeCommit 在负载均衡器后面,每个节点都有自己的 SSH 主机 key 。当您访问不同的节点时,它们会向您展示它们自己的主机 key ,您的 ssh 客户端会将其缓存在 known_hosts 中。

您可以忽略它,但如果您不想让 key 累积,您可以选择忽略此远程缓存。

~/.ssh/config 中,只需将几个参数添加到您已经添加的条目即可。

Host git-codecommit.*.amazonaws.com
  User Your-IAM-SSH-Key-ID-Here
  IdentityFile ~/.ssh/Your-Private-Key-File-Name-Here
  UserKnownHostsFile /dev/null
  CheckHostIP no

关于Git 为每次推送继续构建我的 'known_hosts' 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41523839/

相关文章:

git - 分离头 - 移至更新的提交

php - 亚马逊 MWS - 更新产品数量

amazon-web-services - s3 桶的默认 block 大小是多少

Git:如何查看两个远程分支的不同之处?

git clone,上传包内存不足

git - 我们可以将 git-annex 添加到 GitLab CE 吗?

ruby - 将 HTML、CSS 和 Node.js/Ruby 与 Heroku、Git 和 AWS 放在一起

git - 如何获取之前克隆的git仓库?

git rm --cached 仍然将文件留在存储库中的某个位置

git - 如何更改存储库链接到的复刻