新鮮なクリーンサーバーでgitlab(6.5.1)をセットアップしようとしています。すべてが機能しているように見えますが、gitはどのプロジェクトにもプッシュできません。新しく作成されたプロジェクトページからコマンドを実行し、ssh経由でリモートにプッシュすると、次の結果が得られます。
$ git push -u origin master
fatal: Could not read from remote repository.
Please make sure you have the correct access
rights and the repository exists.
これはかなり一般的な問題のようです。残念ながら、多くの潜在的な原因があり、それらのどれも一致しないようです。問題3424 オンライン古いリリースおよび他のさまざまなソースの私が見て、次の提案をチェックしました:
残りのsshキー
これは、残り物のないクリーンなセットアップです。私の鍵は許可された鍵ファイルに適切に追加され、リストされている唯一のものです。
デバッグロギングを使用してsshを実行すると、Ruby環境変数に関連するエラーが表示されます。
鉱山がきれいになります。SSHデバッグは正常な接続を示します。認証ハンドシェイクに関するすべてが正常である場合、これは出力の終わりです。
debug1: Sending command: git-receive-pack 'username/reponame.git' debug1: client_input_channel_req: channel 0 rtype exit-status reply 0 debug1: client_input_channel_req: channel 0 rtype eow@openssh.com reply 0 debug1: channel 0: free: client-session, nchannels 1 debug1: fd 0 clearing O_NONBLOCK debug1: fd 1 clearing O_NONBLOCK
gitlab-shell環境の問題。
上記と同じエラーメッセージが表示される他の多くのユーザーとは異なり、私のgitlab-shell checkスクリプトは、正常なBOMを返します。
% sudo -u gitlab -H ~gitlab/gitlab-shell/bin/check Check GitLab API access: OK Check directories and files: /var/lib/gitlab/repositories: OK /var/lib/gitlab/.ssh/authorized_keys: OK Test redis-cli executable: redis-cli 2.8.5 Send ping to redis server: PONG
{unicorn、sidekiq、redis}を再起動します
1つ以上のサービスを再起動するとこれが解消されるという報告は、ここでは当てはまらないようです。これは、デーモンを修正する断続的な問題ではありません。
リポジトリが物理的に作成されていません
しかし、そうです。毎回初めて、裸のgitレポジトリ
~gitlab/repositories/username/reponame.git
が毎回作成され、正しい権限を持っているようです。A)DNSの問題、B)間違ったip / port / interfaceバインディング、C)スラッシュがない/持っていないため、GitlabシェルはAPIサーバーと通信できません。
checkスクリプトは、APIアクセスは問題ないと述べています。
私はnginxを実行していないので、それに関連するデフォルトのIPバインディングの問題はn / aです。
私は両方を試してみた
*:8080
と127.0.0.1:8080
の値を聞くためunicorn.yml
。それを超えて、localhost、127.0.0.1、および完全修飾ドメイン名(これはDNSで問題なく解決できます)のさまざまな反復を試行し
shell.yml
ました。また、ポート80のApache SSL /プロキシホストの代わりに、これをポート8080のユニコーンサーバーに直接配線しようとしました。何も違いはありません。私の証明書は自己署名されておらず、ブラウザでは正常に機能していますが、self_signed_cert: true
とにかく設定しようとしました。なし。報告されたgitパスが間違っています。gitlabユーザーのホームから完全修飾パスを追加してください。
これは、gitlab-shellがこれを修正するためにいくつかのモンキービジネスを行っていない場合、合法的な提案のように思えますが、
git remote add origin gitlab@server:username/reponame.git
「git remote add origin gitlab @ server:repositories / username / reponame.git」に変更してみました。同じエラー。
これは提案された解決策の大部分であるように見えますが、どれも正しいとは思えません。注:httpをプッシュできます。ログインプロンプトは、LDAPユーザー名とパスワードを受け入れ、プッシュを受け入れます。これは、SSHを使用する際の問題にすぎません。でsshログイン部分だけをテストするとssh -T gitlab@server
うまくいきます。
このエラーの原因は他に何ですか?
gitlabでこのような問題をデバッグするにはどうすればよいですか?に関連するものはまったくないようです~gitlab/gitlab-shell/gitlab-shell.log
。より有益なエラーメッセージはどこにありますか?