2016-12-06 182 views
1

我遵循Multiple GitHub Accounts & SSH Config(stefano的回答)中描述的流程,並使用部署密鑰設置了對多個存儲庫的SSH訪問權限。我試過在特定的GitHub組織的倉庫,它工作正常 - 我可以拉和推變化。我也嘗試過在我的用戶區域,它仍然很好。通過SSH訪問GitHub存儲庫

然而,當嘗試這種在另一GitHub的組織庫(例如做一個混帳推時)失敗,出現以下錯誤

ERROR: Permission to XXXX/YYYY.git denied to deploy key 
fatal: Could not read from remote repository. 

Please make sure you have the correct access rights 

當通過ssh -T檢查SSH訪問我得到

「Hi XXX/YYYY!您已成功通過身份驗證,但GitHub不提供shell訪問權限。」

這表明SSH應該工作。

我已經瀏覽了組織設置(GitHub organization> Settings的主頁面),他們有幾乎完全相同的設置,除了您期望會有不同的設置外,聯繫電子郵件等。

我想知道是否有人有什麼可能會導致此問題的想法。有沒有更多的組織設置在任何地方?

回答

0
ERROR: Permission to XXXX/YYYY.git denied to deploy key 

這看起來像您試圖使用部署密鑰推送。此密鑰用於部署,因此僅用於只讀訪問存儲庫。請確保您的密鑰已註冊到您的github帳戶中,請確保已使用該密鑰(IdentityFile,~/.ssh/config),並從默認採用的標準位置(~/.ssh/id_{rsa,dsa,ecdsa,ed25519})中刪除部署密鑰。請注意,如果有更多的「有效」鍵,只有冷杉成功。

+0

你是說部署密鑰僅用於只讀訪問嗎?我勾選了「寫入權限」複選框,並且我還將其用於不同GitHub組織的存儲庫。建議按照建議設置配置中的IdentityFile。 – charisk

+0

那麼,只讀是有道理的,但我看到github支持也出於某種原因讀取/寫入部署密鑰。但肯定檢查你是否用預期的密鑰登錄是一個好的開始。在'〜/ .ssh/config'中設置LogLevel DEBUG3會幫助你。 – Jakuje

+0

感謝您的指點。我希望它具有寫訪問權限,以便我的構建服務器可以推送更改版本標籤。所以我可以看到用例。不過,我相信這與我的設置無關,但與GitHub設置無關。 LogLevel表明獲得了正確的密鑰並且認證正常,只是出於某種原因,GitHub帶着「拒絕部署密鑰的權限到XXXX/YYYY.git」。 – charisk