16

サーバーで GitLab を起動して実行しようとしています。gitlab github ページのインストール手順に従ったところ、すべてうまくいきました。

問題は、レポを作成してしようとするときです

sudo git push -u origin master

「git@localhost のパスワード:」の入力を求められます。

git ユーザーはパスワードを持っていないので、これは問題です。

この問題に遭遇した他の人は、sshd conf の AllowedUsers に git を追加することを提案しましたが、そこに AllowedUsers フィールドがないため、問題にはならないようです。

私はまだsshにかなり慣れていないので、何らかのsshキーの問題だと思いますが、関連するすべてのsshキーを/home/git/.ssh/authorized_keysに追加しようとし、ファイルに改行がないことを確認しました.

参考までに、インストールは gitlab wiki で提供されているテストに完全に合格しています。

sudo -u gitlab bundle exec rake gitlab:app:status RAILS_ENV=production

どんな提案でも大歓迎です!

編集

そのため、別のマシンからレポにコミットするだけで、最終的にこれを回避しました。そのまま、gitlab が実行されているのと同じマシンに SSH 接続されました。ホスト以外のマシンからコミットしようとするとすぐに、うまくいきました。したがって、それは一部の人々にとっては解決策かもしれません (私たちはサーバーとは別のマシンで開発しているので、それは私たちのためです)。

これは、これに遭遇した同じマシンでホストおよび開発しようとしている人にとっては、まだ未解決の問題です。

4

15 に答える 15

4

TL;DR

キーは gitlab DB と gitolite 側の両方に保存されます。ファクトリ ビルドの gitolite-admin.git フォルダーを使用する必要があります。バックアップは使用しないでください。そして、後で update keys コマンドを使用して、gitolite のキーを再構築します。(gitlab db内にすでに保存されているキーをgitoliteに更新します)

sudo -u gitlab -H bundle exec rake gitlab:gitolite:update_keys RAILS_ENV=production

gitolite のキーが適切に保存されないという問題があるためです。これらのキー (ログイン用) は、実際には gitlab と gitolite によって別々に保持されます。プル/プッシュは、実際には gitolite 内に保存されているキーを使用しています。(git/repositories/gitolite-admin.git/index, git/.gitolite/keydir, git/.ssh/authorized_keys)

gitlab は、通常、これらのインポートされたキーをウェブ上で gitolite ファイルに保存するのに役立ちます。しかし、何らかの理由で失敗しました。キーが gitolite 内に適切に保存されていないため、クライアント/サーバーはキーを使用できず、パスワードにフォールバックします。

問題を解決するには、gitolite 内に保存されているキーを確認して修正する必要があります。

詳しくは https://groups.google.com/forum/?fromgroups=#!topic/gitlabhq/X0z_9l7L7A8をご覧ください

于 2012-12-19T03:43:36.340 に答える
2

インストールがうまくいった場合、それはあなたの gitlab が問題なく gitolite-admin リポジトリを複製できることを意味します。
しかし、ステータスチェックに合格すると言いました。つまり、ssh接続に「gitlab」という名前のアカウントを使用していることを意味します。

gitlabこれは、クライアントが ' ' ではなく、同じアカウント ' ' で ssh する必要があることも意味しますgit
したがって、ssh キーが gitlab インターフェイスを介して追加されている場合は、git clone/git push をリモート名 origin に送信できますgitlab@server

さらにデバッグするには、「Git リモート SSH のセットアップ (git-upload-pack / git-receive-pack)」に記載されているその他のヒントを確認してください。

ローカルにプッシュできない場合 (サーバー自体、つまり「localhost」)、少なくとも次のことを試してください。

ssh -vvvT gitlab@localhost

/home/gitlab/.ssh/id_rsa/home/gitlab/.ssh/id_rsa.pubの両方が存在するため、パスワードは必要ありません。

于 2012-08-01T21:09:01.023 に答える
2

同じパスワードプロンプトを受け取りました。私の問題は、ssh の使用を数人のユーザーのみに制限していたことです。git ユーザーを AllowUsers リスト sshd_config に追加したところ、すべてうまくいきました。

于 2013-03-26T21:16:45.963 に答える
1

gitlab プロファイルに公開 ssh キーがあることを確認してください。gitlab にサインインし、プロファイルに移動して、[公開キーを追加] ボタンを選択します。「keyfile」.pub の内容をコピーして [キー] ボックスに貼り付けます。公開鍵を追加したときに、authorized_keys ファイルが更新されないというバグがある gitlab のバージョンがいくつかありました。公開鍵をプロファイルに追加した後、その公開鍵がauthorized_keys ファイルにあることを確認します (手動で追加しないでください)。これが問題でない場合は、おそらく以前の回答のいずれかが役立つでしょう。

于 2013-05-03T20:26:42.180 に答える
1

gitサーバーで編集/etc/ssh/sshd_config

認証セクションの下にある次の行のコメントを解除するか、追加します。

PubkeyAuthentication yes

AuthorizedKeysFile %h/.ssh/authorized_keys

サーバーの電源を入れ直してから、gitlab を起動します

于 2013-07-03T09:10:35.127 に答える
1

私は最近同じ問題に遭遇し、私にとっての問題は、SELinux がsshdが gitlab の data directoryにあるauthorized_keysファイルにアクセスするのを妨げていたことであることがわかりまし/var/opt/gitlab/た。

これを修正する/etc/selinux/targeted/contexts/files/file_contexts.homedirsには、次の行を編集して追加します。

/var/opt/gitlab/\.ssh/.*    system_u:object_r:ssh_home_t:s0

次に実行します。

$ restorecon -Rv /var/opt/gitlab

ソース: https://serverfault.com/questions/50573/selinux-preventing-passwordless-ssh-login

于 2015-04-22T08:02:33.680 に答える
1

これは最近、かなり頻繁に起こり始めました。仕事のプロジェクトでは、git がメールアドレスとパスワードを尋ねてきました。入力すると問題なく続行されますが、面倒です。

アクセスできる任意のアプリケーションでこれを修正できます。

git config remote.origin.url git@github.com:user_org_or_co/repo_name_itself

例えば

git config remote.origin.url git@github.com:smithw/bookmarkapp
于 2012-08-21T23:44:11.193 に答える
0

これは、gitlab ssh サーバーが正しく構成されていなかったことを意味します。

編集/etc/ssh/sshd_configして、次のことを保証します。

PasswordAuthentication no
ChallengeResponseAuthentication no

これにより、優れたセキュリティ対策でもある ssh キーのみのログインが強制されるはずです。多くの新しいディストリビューションでは、これがデフォルトで有効になっています。

外に閉じ込められた場合は私に聞かないでください。明らかに SO は、秘密鍵と公開鍵のペアの構成方法と使用方法を尋ねる場所ではありません。

于 2015-05-18T12:13:23.603 に答える
0

同様の症状を示す問題に遭遇しました。私の問題は、ルーターの背後に 2 台のコンピューターがあることでした。ルーターは、SSH トラフィック (ポート 22) をコンピューター 1 にポート転送するように設定されています。Gitlab はコンピューター 2 にインストールされています。接続には、ドメインと公開 IP を使用しています。プッシュすると、SSH トラフィックはコンピューター 1 に向けられます。git をインストールしただけで、コンピューター 1 には git ユーザーがいます。コンピューター 1 から、git ユーザーのパスワードの入力が求められます。

私のインストールもすべての準備チェックに合格しました。

同じ問題を抱えているかどうかはわかりませんが、症状はまったく同じなので、これが役立つかもしれないと考えました.

于 2012-08-13T12:26:55.527 に答える
0

あなたの git および gitlab ユーザーはパスワードなしですか?

調子はどうsshd_config

この行がファイルにあるかどうかを確認します。PermitEMptyPassword Yes

とにかく、それは安全ではないと思います。私のインストールでは、これを「はい」、クローンを作成してから、古い構成を保持します...クローンを作成すると、ssh_keyはユーザーgitによって保存され、パスワードはもう要求されません..

しかし、今では別のエラーが発生しています。プッシュしようとすると、新しいユーザーごとに、空のプッシュを許可するように ssh を再構成してから、構成を元に戻す必要があります。

(私の gitlab が git user :/ でリポジトリを作成していないことがわかったので、まだこの方法をテストしていません)

于 2012-11-09T15:39:06.510 に答える
0

これは単純すぎるかもしれませんが、私は同じ問題を抱えていました。ドメイン名として localhost を選択したためだと思います。

別のコンピューターから localhost マシンにログインしてから、コミットしようとするとうまくいきました。かなりばかげていますが、試してみる価値があります。

于 2013-02-11T22:31:07.123 に答える
0

これで1回混みました。を使用sudo gitすると、git が root として起動されます。問題は、root 用の SSH キーを作成して Gitlab 内に配置したかどうかです。

SSHキーを作成せずにsudo(通常のアカウント用)、SSH公開キーをGitlabに入れてから実行したと思いますsudo git.

なしで git を実行してみることができますsudo。また、最初に sudo を使用することになったフォルダーのアクセス許可の問題がある場合は、ユーザー アカウントにそのフォルダーへのアクセス権を付与してみてください。または、書き込み権限のあるフォルダーで通常どおり git を試してみてください。

于 2013-07-12T07:12:09.773 に答える
0

Bitnami またはその他の構成でこの問題が発生し、迅速に解決したい場合は、代わりにフル パスを使用してください。

git clone git@server_adress:/full/path/to/project.git

編集:言及するのを忘れていました.SSHキーをWebページ経由でgit-labに追加したかどうかを確認することは非常に重要です..

于 2015-06-30T21:57:59.160 に答える
0

ここにチェックマークがあります。

問題の原因を特定するには、 経由でサーバーのログを確認してくださいsudo grep sshd /var/log/auth.log

2013 年 12 月 13 日の commit までb24d5d、Vagrant 開発マシン.ssh/. 次のものが必要です。

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

またはsshはrsa接続を拒否し、次のようにsudo grep sshd /var/log/auth.log言います:

Authentication refused: bad ownership or modes for file /home/git/.ssh/authorized_keys    

この問題は、開発用に sshd を非 sctrict モードに設定することで解決され、パーミッションが自由すぎる場合でも正しく実行できるようになりました。

于 2014-01-10T13:43:42.500 に答える