サーバーで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接続されました。ホスト以外のマシンからコミットしようとすると、すぐにうまくいきました。したがって、これは一部の人にとっては解決策となる可能性があります(サーバーとは別のマシンで開発しているため、私たちにとってはそうです)。
これは、これに遭遇した同じマシンでホストして開発しようとする人にとっては、まだ解決できない問題です。
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
インストールが成功した場合、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
の両方が存在するため、パスワードは必要ありません。
同じパスワードのプロンプトを受け取りました。私の問題は、sshの使用を数人のユーザーだけに制限していたことでした。 gitユーザーをAllowUsersリストのsshd_configに追加しましたが、すべてうまくいきました。
これは最近かなり頻繁に起こり始めました-作業プロジェクトの場合、gitは私のメールとパスワードを尋ねてきました。入力しても問題ありませんが、迷惑です。
私がアクセスできる特定のアプリケーションについてこれを修正できます:
git config remote.Origin.url [email protected]:user_org_or_co/repo_name_itself
例えば.
git config remote.Origin.url [email protected]:smithw/bookmarkapp
Gitlabプロファイルに公開sshキーが含まれていることを確認してください。 gitlabにサインインし、プロファイルに移動して、「公開鍵を追加」ボタンを選択します。 「keyfile」.pubの内容をコピーして、[キー]ボックスに貼り付けます。 gitlabのいくつかのバージョンには、公開鍵を追加したときに、authorized_keysファイルを更新しないというバグがありました。公開鍵をプロファイルに追加した後、authorized_keysファイルにあることを確認します(手動で追加しないでください)。これが問題でない場合は、おそらく以前の回答の1つが役立つでしょう。
gitサーバーで編集/etc/ssh/sshd_config
authenticationセクションの下にある次の行のコメントを外すか、追加します。
PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys
サーバーの電源を入れ直してから、gitlabを起動します
これは単純すぎるかもしれませんが、同じ問題がありました。これは、ドメイン名としてlocalhostを選択したためだと思います。
別のコンピューターからローカルホストマシンに再度ログインしてコミットしたところ、うまくいきました。それはかなり馬鹿げていますが、試す価値があります。
最近同じ問題に遭遇し、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
同様の症状を示す問題に遭遇しました。私の問題は、ルータの背後に2台のコンピュータがあることでした。ルーターはSSHトラフィック(ポート22)をコンピューター1にポート転送するように設定されています。Gitlabはコンピューター2にインストールされています。接続にドメインとパブリックIPを使用しています。プッシュすると、SSHトラフィックがコンピューター1に送信されます。コンピューター1には、gitをインストールしただけのgitユーザーがいます。コンピューター1はgitユーザーのパスワードを要求します。
私のインストールもすべての準備完了チェックに合格しました。
同じ問題が発生しているかどうかはわかりませんが、症状はまったく同じであるため、これが役立つと考えました。
同様の問題がありました: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コマンドは適切に機能します。
あなたのgitおよびgitlabユーザーはパスワードなしですか?
sshd_config
は?
この行がファイルにあるかどうかを確認してください:PermitEMptyPassword Yes
とにかく私はそれが安全ではないと思います、私のインストールでは、これを「はい」にして、複製して古い設定を保持します...
しかし今、私は別のエラーに遭遇します、私がプッシュするとき、すべての新しいユーザーについて、空のプッシュを許可するためにsshを再設定してから、設定を保持する必要があります。
(私のgitlabがgit userでリポジトリを作成していないことがわかったので、私はまだこの方法をテストしていません:/)
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キーを追加したかどうかを確認することは非常に重要です。
私はこれと一度は混乱しました。 Sudo git
を使用すると、gitがrootとして起動されます。問題は、ルート用のSSHキーを作成してGitlab内に配置したことでしょうか?
Sudo
(通常のアカウント用)なしでSSH鍵を作成し、SSH公開鍵をGitlabに入れてから、Sudo git
を実行したと思います。
Sudo
なしでgitを実行してみることができます。また、最初にSudoを使用する原因となったフォルダーのアクセス許可の問題がある場合は、ユーザーアカウントにそのフォルダーへのアクセスを許可してみてください。または、通常は書き込み権限のあるフォルダでgitを試してください。
これは、gitlab sshサーバーが適切に構成されていなかったことを意味します。
編集/etc/ssh/sshd_config
および以下を保証します。
PasswordAuthentication no
ChallengeResponseAuthentication no
これは、sshキーのみのログインを強制するはずです。これは、優れたセキュリティ対策でもあります。新しいディストリビューションの多くは、これがデフォルトで有効になっています。
SOは、秘密鍵と公開鍵のペアを構成して使用する方法を尋ねる場所ではありません。