Git

本地 GitLab 不接受 SSH 密鑰

  • July 18, 2020

我查看了這篇文章,但它似乎是為 OSX 和/或 Windows 編寫的,我不確定如何將其應用於我的情況:

GitLab Not Working With SSH-Keys

我使用 Omnibus(添加到 gitlab.sources 的 bash 腳本)正常設置了我的 GitLab 實例。我在本地伺服器上執行 GitLab。本地伺服器正在使用 OpenSSH 允許從我的主機連接,並且我有埠 80 和 8060 對我連接到 GitLab 網站的本地電腦開放。當 GitLab 啟動時,我可以登錄網站,並且可以創建管理員和使用者帳戶。

我轉到我的使用者下的設置,並為我生成的密鑰添加了公鑰,我什至重新配置並重新啟動了 GitLab 實例,但每次我嘗試通過終端從本地電腦連接時都會Permission Denied (publickey)出錯。

我不精通 GitLab 配置(通過 gitlab.rb)或 SSH 配置。我唯一能想到的是文件或目錄的權限錯誤,或者 GitLab 不知道在哪裡查看/如何找到我正在使用的密鑰。非常感謝任何幫助,我很樂意提供我遺漏的任何資訊!

我檢查了 /var/log/auth.log 下的日誌,並且在 AllowUsers 下沒有 git@mymachine。感謝@MichaelHampton!

查看 GitLab 的密鑰文件,即/var/opt/gitlab/.ssh/authorized_keys,它是否包含您的密鑰?據說你可以用

gitlab-rake gitlab:shell:setup

命令。但請注意,此功能在前一段時間被破壞了。他們還計劃完全取消這種方法。我建議您切換到“快速 SSH 查找”,它真的很簡單。只需將這些行添加到/etc/ssh/sshd_config

Match User git    # Apply the AuthorizedKeysCommands to the git user only
 AuthorizedKeysCommand /opt/gitlab/embedded/service/gitlab-shell/bin/gitlab-shell-authorized-keys-check git %u %k
 AuthorizedKeysCommandUser git
Match all    # End match, settings apply to all users again

然後重新啟動您的 SSH 伺服器。詳細資訊:通過 GitLab Shell 設置快速查找

引用自:https://serverfault.com/questions/1025761