使用Git時如何解決權限被拒絕(公鑰)錯誤?

我在Mac Snow Leopard上,而且剛剛安裝了githtml

我剛試過 node

git clone git@thechaw.com:cakebook.git

但這給了我這個錯誤: git

Initialized empty Git repository in `/Users/username/Documents/cakebook/.git/`
Permission denied (publickey).
fatal: The remote end hung up unexpectedly

我想念什麼?
我也嘗試過使用ssh-keygen而不設置密碼,可是仍然存在相同的錯誤。 github


#1樓

基本的GIT指令未引用SSH密鑰。 經過上面的某些連接,我找到了一個git幫助頁面,該頁面逐步解釋瞭如何針對各類操做系統執行此操做(該連接將檢測到您的操做系統並進行相應的重定向): 服務器

http://help.github.com/set-up-git-redirect/ ssh

它遍歷了GITHub所需的全部內容,並給出了詳細的解釋,例如「爲何在建立RSA密鑰時添加密碼短語」。 我想我會發布它,以防它幫助別人... 加密


#2樓

使用來自Github的ssh連接,但請確保不使用ssh附加它,而只需使用git hub上的ssh選項卡能夠克隆倉庫便可。 spa


#3樓

在Windows上,確保全部應用程序在HOME上均一致。 Msys不會爲您作到這一點。 我必須設置一個環境變量,由於ssh和git彷佛沒法在個人.ssh目錄所在的位置上達成一致。 操作系統


#4樓

請注意(至少對於某些項目而言), 您必須具備帶有ssh key的github賬戶代理

查看認證代理中列出的密鑰( ssh-add -l
(若是看不到任何內容,請使用ssh-add / path / to / your / key添加您現有的鍵之一(例如: ssh-add〜/ .ssh / id_rsa ))
(若是您沒有任何密鑰,請先建立一個。請參閱: http : //rcsg-gsir.imsb-dsgi.nrc-cnrc.gc.ca/documents/internet/node31.html或僅是谷歌ssh-keygen)

要驗證您是否具備與github賬戶關聯的密鑰

前往: https//github.com/settings/ssh

您應該至少看到一個鍵,該鍵的哈希鍵與您剛在一分鐘前鍵入ssh-add -l時看到的哈希之一匹配。

若是不這樣作,請添加一個,而後重試。


#5樓

當您訪問SSH URL(讀/寫)而不是Git只讀URL時,可能會發生此錯誤,可是您對該存儲庫沒有寫權限。

有時,您只想克隆本身的存儲庫,例如,部署到服務器。 在這種狀況下,您實際上僅須要只讀訪問權限。 可是因爲這是您本身的存儲庫,所以若是您願意,GitHub可能會顯示SSH URL。 在這種狀況下,若是遠程主機的公共密鑰不在GitHub SSH密鑰中,則將拒絕您的訪問, 這將有望發生

一個等效的狀況是,當您嘗試克隆沒有使用SSH URL的寫訪問權的其餘用戶的存儲庫時。

簡而言之, 若是您打算僅克隆存儲庫,請使用HTTPS URLhttps://github.com/{user_name}/{project_name}.git git@github.com:{user_name}/{project_name}.git )而不是SSH URL( git@github.com:{user_name}/{project_name}.git ),它避免了(沒必要要的)公共密鑰驗證。


更新:GitHub如今顯示HTTPS爲默認協議,此舉可能會減小SSH URL的濫用。

相關文章
相關標籤/搜索