web-dev-qa-db-ja.com

GitLabはレポジトリにプッシュするためにgit @ localhostパスワードを必要とします

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

問題は、レポを作成して

Sudo git Push -u Origin master

'git @ localhost's password:'の入力を求められます

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接続されました。ホスト以外のマシンからコミットしようとすると、すぐにうまくいきました。したがって、これは一部の人にとっては解決策となる可能性があります(サーバーとは別のマシンで開発しているため、私たちにとってはそうです)。

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

16
DevinR

TL; DR

キーはgitlab DBとgitolite側の両方に保存されます。工場でビルドしたgitolite-admin.gitフォルダーを使用してください。バックアップは使用しないでください。そして、後でキー更新コマンドで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は通常、これらのインポートされたキーをWeb上のgitoliteファイルに保存するのに役立ちます。ただし、何らかの理由で失敗しました。キーはgitolite内に適切に保存されないため、クライアント/サーバーはキーの使用とパスワードへのフォールバックに失敗します。

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

詳細はこちら https://groups.google.com/forum/?fromgroups=#!topic/gitlabhq/X0z_9l7L7A8

4
RacsO

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

つまり、すべてのクライアントは、 'gitlab'ではなく、同じアカウント 'git'でSSHを実行する必要があります。
sshキーがgitlabインターフェイスを介して追加されている場合は、git clone/gitでアドレス「gitlab@server」を持つリモート名Originにpushできます。

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

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

ssh -vvvT gitlab@localhost

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

3
VonC

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

2
pixel

これは最近かなり頻繁に起こり始めました-作業プロジェクトの場合、gitは私のメールとパスワードを尋ねてきました。入力しても問題ありませんが、迷惑です。

私がアクセスできる特定のアプリケーションについてこれを修正できます:

git config remote.Origin.url [email protected]:user_org_or_co/repo_name_itself

例えば.

git config remote.Origin.url [email protected]:smithw/bookmarkapp
1
Michael Durrant

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

1
phone911

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

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

PubkeyAuthentication yes

AuthorizedKeysFile %h/.ssh/authorized_keys

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

1
Bent Cardan

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

別のコンピューターからローカルホストマシンに再度ログインしてコミットしたところ、うまくいきました。それはかなり馬鹿げていますが、試す価値があります。

0
tsar2512

最近同じ問題に遭遇し、SELinuxがsshdからauthorized_keysgitlabのデータディレクトリにあるファイル/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

0
peonicles

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

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

同じ問題が発生しているかどうかはわかりませんが、症状はまったく同じであるため、これが役立つと考えました。

0
Eebs

同様の問題がありました:GitlabサーバーがDockerコンテナー内にあり、変更をプッシュしようとするたびに、次のようになりました:git@localhost's password:

根本的な原因は、名前として「localhost」を使用していたことです。正しい方法は、GitLabのコンテナのIPをチェックアウトすることです:$ docker inspect <container_id>

行を検索:"IPAddress": "172.17.0.2",

それをテストする:ssh -T [email protected]答えは次のようになります。 「GitLabへようこそ、@ user_name!」

ここで、リポジトリのURLを修正する必要があります:$ git remote set-url Origin [email protected]:user_name/repo-name.git

その後、Pushコマンドは適切に機能します。

0
PavelPraulov

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

sshd_configは?

この行がファイルにあるかどうかを確認してください:PermitEMptyPassword Yes

とにかく私はそれが安全ではないと思います、私のインストールでは、これを「はい」にして、複製して古い設定を保持します...

しかし今、私は別のエラーに遭遇します、私がプッシュするとき、すべての新しいユーザーについて、空のプッシュを許可するためにsshを再設定してから、設定を保持する必要があります。

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

0
Mauro Dias

here にはチェックマークが付いています。

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

2013年12月13日までb24d5dをコミットするまで、.ssh/の権限がexcessであったため、Vagrant開発マシンで問題が発生しました。あなたが必要です

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を非厳密モードに設定することで解決され、権限がフリーであっても正しく実行できるようになりました。

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

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

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

0
musso nero

私はこれと一度は混乱しました。 Sudo gitを使用すると、gitがrootとして起動されます。問題は、ルート用のSSHキーを作成してGitlab内に配置したことでしょうか?

Sudo(通常のアカウント用)なしでSSH鍵を作成し、SSH公開鍵をGitlabに入れてから、Sudo gitを実行したと思います。

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

0
Iszuddin Ismail

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

編集/etc/ssh/sshd_configおよび以下を保証します。

PasswordAuthentication no
ChallengeResponseAuthentication no

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

SOは、秘密鍵と公開鍵のペアを構成して使用する方法を尋ねる場所ではありません。

0
sorin