Gitlab が SSH キーで動作しない

Gitlab が SSH キーで動作しない

Gitlabで問題が発生しています。次のガイドを使用してGitlabをインストールおよび設定しました。https://github.com/gitlabhq/gitlab-recipes/blob/master/install/centos/README.mdインストールはうまくいったようです。Web アプリケーションは正常に動作しているようです。ただし、クローン、プル、プッシュができず、基本的に 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/messagegitや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 フェイス経由でインポートされたもの) のレコードが 1 つだけであること、/home/git/.ssh/authorized_keysおよびこのキーに GitLab のプレフィックスとタイトルが含まれていることを確認します。つまり、GitLab をインストールする前に同じキーを手動で追加した場合は、それを削除します。

答え3

また、ユーザーが GitLab でクローン/プル/プッシュするための適切な権限を持っているかどうかを確認することをお勧めします。問題の原因は GitLab のユーザーに十分な権限がなかったことなのに、SSH/https 構成を調べるのに時間がかかりすぎました...

答え4

これは、ホストの名前に「-」が含まれている場合に発生する可能性があります。(これはRFC952 の翻訳

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

関連情報