Gitlab 無法使用 SSH 金鑰

Gitlab 無法使用 SSH 金鑰

我在使用 Gitlab 時遇到問題。我使用以下指南來安裝和設定 Gitlabhttps://github.com/gitlabhq/gitlab-recipes/blob/master/install/centos/README.md。安裝似乎一切順利。該網絡應用程式似乎運作良好。但是我無法克隆、拉取、推播,基本上我基本上無法使用 Gitlab。我在嘗試透過 SSH 克隆時遇到 HTTP 403 錯誤和權限被拒絕。

我已確保我的私鑰在 Windows 和 OS X 上都正確設定。我將以下內容新增至 ~/.ssh.config 中的設定檔中

Host {hostname}
    User git
    Hostname {hostname}
    PreferredAuthentications publickey
    IdentityFile C:/Users/{username}/.ssh/id_rsa

這是我在 /var/log/secure 中看到的

Jan 14 17:31:48 dev_version_control sshd[3696]: Connection closed by 192.168.17.113
Jan 14 17:32:18 dev_version_control sshd[3700]: Connection closed by 192.168.17.113

/var/log/message當我嘗試使用 git 或 ssh 時,沒有起作用

我不知道從這裡該去哪裡。有什麼建議麼?

我不知道你所說的使用 git 使用者名稱進行 SSH 是什麼意思。我使用的指南沒有為git用戶建立密碼,並聲明該用戶不能用於登入。

答案1

假設您已在用戶端上載入私鑰,那麼聽起來這可能是「git」使用者主目錄和 .ssh 目錄的權限問題。

請嘗試將 /home/git 目錄變更為遮罩 0711:

chmod 0711 /home/git

確保 /home/git/.ssh 目錄的遮罩為 0700:

chmod 0700 /home/git/.ssh

確保 /home/git/.ssh/authorized_keys 檔案的遮罩為 0600:

chmod 0600 /home/git/.ssh/authorized_keys

如果教學中的內容有所不同,請將 /home/git 替換為「git」使用者的主目錄。如果不是權限問題,請發表評論,我們會看看還有什麼問題。

答案2

檢查您的公鑰(透過 Web Face 匯入)只有一筆記錄,/home/git/.ssh/authorized_keys且該金鑰具有 gitlab 的前綴和標題。換句話說,如果您在安裝 gitlab 之前手動新增了相同的金鑰,則將其刪除。

答案3

我還建議檢查用戶是否具有在 gitlab 中克隆/拉取/推送的適當權限。我只是花了太多時間查看 ssh/https 配置,而問題的原因是 gitlab 中的用戶沒有足夠的權限...

答案4

如果主機名稱中包含“-”,則可能會發生這種情況。 (儘管根據RFC 952.)

ssh 會提示我輸入名稱中恰好有“-”的任何主機的密碼。這似乎純粹是 ssh 設定檔解析的問題,因為向 ~/.ssh/config 添加別名(並在我的 git 遠端 url 中使用該別名)解決了問題。

換句話說,嘗試將類似以下內容放入 C:/Users/{username}/.ssh/config 中

Host {a}
    User git
    Hostname {a-b.domain}
    IdentityFile C:/Users/{username}/.ssh/id_rsa

以及您擁有以下形式的遙控器的地方

origin  [email protected]:repo-name.git

刪除它,然後使用表單重新新增它

origin  git@a:repo-name.git

相關內容