【发布时间】:2014-04-02 14:00:51
【问题描述】:
我在两种情况下使用git:
- 我使用一些 Github 存储库。
- 我目前正在使用 OpenShift,它使用 ssh 和 git 进行部署。
首先,我使用ssh-keygen 生成在 OpenShift 站点更新的密钥。此类密钥存储在 ~/.ssh/ 并创建 id_rsa 和 id_rsa.pub。
然后我开始从 Github 克隆一个存储库,我曾经做过一次 ssh-keygen 并开始推送,它工作正常。然后我克隆了另一个存储库并开始遇到问题:
克隆到第二个存储库时遇到问题。每次我尝试推送时都会显示如下内容:
ERROR: Permission to diegoaguilar/cursoJava.git denied to diegoaguilar/cursoCannibalCreatures. fatal: The remote end hung up unexpectedly
但可以看出 diegoaguilar/cursoCannibalCreatures 不正确,因为它是 另一个 存储库。
我什至尝试删除这样的存储库目录,然后再次克隆它,同样发生了。
我已经下~/.ssh:
config:
Host cursoJava
Hostname github.com
User git
IdentityFile ~/.ssh/id_java
Host cursoCannibalCreatures
Hostname github.com
User git
IdentityFile ~/.ssh/id_cannibal
Host openshift
Hostname openshift.com
User git
IdentityFile ~/.ssh/openshift
所以得到了:
id_cannibal id_cannibal.pub id_java id_java.pub known_hosts
id_openshift 和 id_openshift.pub 之类的东西不存在,但由于它不起作用,我现在不太在意。
我创建了这样的文件,它们是ssh-keygen -f <filename> 的.pub,并为每个文件提供了不同的密码。我在每个 Github 存储库设置中添加了 .pub 的内容作为部署密钥。
我做错了什么?这应该如何工作?而且,在另一台机器上工作时,如何正确获取这些密钥,证明是我并透明地工作?
编辑
git remote -v 的输出:
- 用于cursoJava存储库
origin git@github.com:diegoaguilar/cursoJava.git (fetch)
origin git@github.com:diegoaguilar/cursoJava.git (push)
- 对于 cursoCannibalCreatures
origin git@github.com:diegoaguilar/cursoCannibalCreatures.git (fetch)
origin git@github.com:diegoaguilar/cursoCannibalCreatures.git (push)
【问题讨论】:
-
您的公共 ssh 密钥是否在您的 GitHub 存储库管理页面中正确注册了正确的 Github 存储库?
-
是的,我仔细检查过。我添加了我尝试过的所有内容,@VonCpan>
-
你能复制
git remote -v和git branch -avvv的结果,以及你输入的确切的git push命令,以及它的确切输出吗? -
好的,请稍等
-
完成了,@VonC 我想这意味着没关系或应该......我现在试着推动......