我在两种情况下使用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 仓库设置中的部署密钥。
我做错了什么?这应该如何工作?当在另一台机器上工作时,如何正确获取这些密钥,证明是我,并透明地工作?
编辑
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)
git remote -v
和git branch -avvv
的结果,以及你正在输入的确切的 git push 命令和它的确切输出吗? - VonC