我使用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