GitLabをインストールしました。
project-x というプロジェクトを作成しました。
私はいくつかのユーザーを作成し、プロジェクトに割り当てました。
今、クローンを作成しようとしました:
git clone git@192.168.0.108:project-x.git
パスワードの入力を求められました。
どのパスワードを使用すればよいですか?
現在のシナリオとは厳密には関係ありません。パスワードの入力を求められる場合、間違った*オリジン形式 (SSH ではなく HTTPS) を追加したことが原因である場合があります。
HTTP(S)プロトコルは一般に、強力なユーザー名とパスを使用する公開リポジトリに使用されます
SSH認証は、ssh-key-file と単純なパスフレーズで認証できる内部プロジェクトでより一般的です
GitLabユーザーはSSHプロトコルを使用する可能性が高くなります
でリモート情報を表示します
git remote -v
HTTP(S)アドレスが表示されている場合は、これをSSHに変更するコマンドです。
git remote set-url origin git@gitlab.my_domain.com/example-project.git
パスワードの入力を求められました。
すべきではありません。
へのアクセスを許可されたユーザーを表す適切な公開/秘密鍵を持っている場合project-x
、gitlab は何も要求しません。
しかし、それはそれssh -vT git@192.168.0.108
が最初に機能していることを前提としています。
https://github.com/gitlabhq/gitlab-shell/issues/46のソリューションは私にとってはうまくいきました。
アクセス許可を設定することにより:
chmod 700 /home/git/.ssh
chmod 600 /home/git/.ssh/authorized_keys
パスワードプロンプトが消えます。
4096 ビットのキーを使用すると、次の同じ問題が発生しました。
$ ssh-keygen -t rsa -C "GitLab" -b 4096
$ ssh -vT git@gitlabhost
...
debug1: 公開鍵の提供: /home/user/.ssh/id_rsa
debug1: 継続できる認証: publickey,password
debug1: 秘密鍵を試しています: /home/user/.ssh/id_dsa
debug1: 秘密鍵を試しています: /home/user/.ssh/id_ecdsa
debug1: 次の認証方法: パスワード
git@gitlabhost のパスワード:
ホストによって接続が閉じられました
しかし、2048 ビット キー (デフォルト サイズ) を使用すると、ssh はパスワードの入力を求めることなく gitlab に接続します (新しい公開キーをユーザーの gitlab ssh キーに追加した後)。
$ ssh-keygen -t rsa -C "GitLab"
$ ssh -vT git@gitlabhost GitLab
へようこそ、Joe ユーザー!
私の場合、デフォルト名id_rsa
とid_rsa.pub
.
これらの名前でキーを生成すると問題が解決し、実際にの出力を見て見つけましたssh -vT my_gitlab_address
。奇妙な事実: Ubuntu を搭載した 1 台のコンピューターでは機能しましたが、別のディストリビューションや古いバージョンの OpenSSH を搭載した他のコンピューターでは機能しませんでした。
Windows マシンの同じソリューション:
パスワードを必要とせずにクローンが成功するはずです。
CentOSサーバーにインストールされているmac.gitlabを使用しています。
上記のすべての方法を試したところ、最終的な答えが見つかりました。
違う:
ssh-keygen -t rsa
右:
ssh-keygen -t rsa -C "your.email@example.com" -b 4096
Windows 10でも同じ問題がありました(これが関連しているかどうかはわかりません)。すべてが正しく設定されていれば、ssh -vT git@myserver
コマンドは成功しましたが、Gitlab は依然としてパスワードを要求してきました。
Gitlab でキーを削除してから再作成するのが、私にとっての秘訣でした。
誰かが私と同じ問題を抱えていた場合に備えて。docker env で GitLab サーバーを実行していて、ssh 接続ポートを 22 ではなく 2202 に設定したかったので、ホストの 2202 ポートを docker コンテナーの 2202 ポートに結合しました。22時までやってなかった。
そして、sshのデフォルトの接続ポートを変更しなければならなかったことを忘れていた...ということで、この質問ライターと同じエラーが発生しました。
最初に22番ポートを開いたところうまくいったので、その後sshの接続ポートを2202に変更したところ問題なく動作しました。
それは私自身はばかげていましたが、他のダミーを助けるかもしれません:)
私は同じ問題を抱えていました。検索に多くの時間を費やしました。
Eclipse を使用して GitLab からプロジェクトをインポートするというアイデアがありました。
プロジェクトが正しくインポートされたら、次の構成を比較しました。
驚き: どちらの場合も、リモコンには同じものはありません。日食と同じものを渡しましたが、すべてが機能します。