我使用git下两种情况:如何为每个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
是不存在的,但因为它不是工作,我现在不太在意。
我创建了这样的文件,他们.pub
ssh-keygen -f <filename>
并给每个不同的密码短语。我在每个Github存储库设置中将.pub
的内容添加为部署密钥。
我在做什么错?这应该如何工作?而且,在另一台机器上工作时,如何正确获取这些密钥,证明它是我的并透明地工作?
EDIT输出git remote -v
的
:
- 对于cursoJava库
origin [email protected]:diegoaguilar/cursoJava.git (fetch) origin [email protected]:diegoaguilar/cursoJava.git (push)
- 对于cursoCannibalCreatures
origin [email protected]:diegoaguilar/cursoCannibalCreatures.git (fetch) origin [email protected]:diegoaguilar/cursoCannibalCreatures.git (push)
你的公共ssh密钥在你的GitHub仓库管理页面中正确注册了正确的Github仓库吗? – VonC
是的,他们,我仔细检查。我添加了所有我试过的东西,@VonC – diegoaguilar
你可以复制'git remote -v'和'git branch -avvv'的结果,以及你输入的确切的git push命令,以及它的确切输出吗? – VonC