2015-10-23 113 views
9

我面臨一個奇怪的情況,我正在使用gitlab帳戶來處理我的代碼。我使用ssh協議訪問回購。我能夠拉代碼,但我嘗試推送代碼時收到以下錯誤。這可能是我身邊的傻事。但是我把密鑰存儲在我的gitlab配置文件能夠用它來拉代碼Gitlab密鑰格式問題

錯誤:

$ git push origin master 
key_load_public: invalid format 
Enter passphrase for key '/c/Users/username/.ssh/id_rsa': 
Access denied. 
fatal: Could not read from remote repository. 

Please make sure you have the correct access rights 
and the repository exists. 
+0

而創建的SSH密鑰您使用的密碼已經添加了SSH,你需要輸入並確認輸入您的gitlab帳戶。即使它不起作用。創建一個新的SSH密鑰,並添加到gitlab中。 –

+0

@PriyanshuShekhar,我也嘗試過這個選項。仍然不允許我推送代碼。如何可以相同的SSH密鑰讓我拉代碼,但不推動它? – jqheart

+0

你是否在同一系統中的多個git帳戶中使用過ssh密鑰? –

回答

17

最後,我已經能夠解決這個問題,我張貼它其他用戶。如果由putty生成的密鑰不能幫助您訪問gitlab repo,請嘗試使用命令ssh-keygengitbash終端生成密鑰,並將文件保存在用戶帳戶的.ssh文件夾中。

linux風格的密鑰生成使我的生活變得簡單,因爲我試圖用putty keygen在windows環境中生成密鑰。

希望這有助於某人。

+3

這適用於我的情況,我曾經使用過putty-keygen並且一直在收到key_load_public:無效的格式錯誤。通過使用Cygwin的ssh-keygen工具生成密鑰來解決此問題。 –

+2

也適用於bitbucket。 –

+1

我被gitlab引導到PuTTYGen,但這是爲我工作的解決方案。應該用這個解決方案更新gitlab幫助,尤其是,因爲它不需要額外下載。 – user1735003

12

PuTTYGen可以生成正確的OpenSSH密鑰。

  1. 生成密鑰文件,保存私鑰(使用或不使用密碼)
  2. 添加您的用戶名/電子郵件地址作爲評論
  3. 複製的內容生成的密鑰並將其粘貼到您的id_rsa的.pub
  4. 出口使用菜單並將其保存爲id_rsa
OpenSSH的私鑰

Export OpenSSH Key

+1

這工作對我來說....愚蠢的Windows。 –

+0

什麼文件加載到Putty Agent,PAGEANT.exe中? – Leonel

+0

@Leonel這不是膩子代理的抱歉 –

1

我從我的私有密鑰(id_es)再生我的公鑰(id_es.pub)固定我的錯誤:

ssh-keygen -f ~/.ssh/id_es -y > ~/.ssh/id_es.pub