質問: いつもお世話になっています。 Git環境構築でどうしても先に進めないので、ご教授お願いできればと思います。 CentOS7+Apache環境に、GitLabを設置しています。 GitLabの設置までは完了しています。 SSH公開鍵を登録し、GitLab上で運用で来ているところまでは確認したのですが、SourseTreeやToutoisGitなどから接続するとエラーが出てしまいます。 どなたかご教授頂けませんでしょうか? [前提] CentOS7+Apache+GitLab sshdのport設定は22から10022に変更済み GitLabは4080ポート使用でApacheと共存させています。SSLあり。 Gitlabのアカウントは「test」メールアドレスは「test@test.com」とします。 Gitlabはサブドメインを使用し、git.test.comで運用しています。 ~/.ssh/config等々セッティングして、 ``` $ ssh git@git.test.com ``` で問題なくログイン出来ていると思います。(Welcome to GitLab, test!表示出ます) ``` Host git.test.com User git Port 10022 HostName git.test.com RSAAuthentication yes IdentityFile ~/.ssh/test/id_rsa ``` また、GitLabでプロジェクトを作成した際に提示される「Create a new repository」の手順通りにサーバー上で操作したところ、該当プロジェクト内にGitの操作履歴が表示されることも確認できています。 ``` $ git clone git@git.test.com:test/test.git $ cd test $ touch README.md $ git add README.md $ git commit -m "add README" $ git push -u origin master ``` ここまで確認できたので、SourseTreeやToutoisGitなどで接続を試みたのですが、以下のようなエラーが出ます。 ``` FATAL ERROR: Network error: Connection refused fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. ``` また、Git Bashで試みたところ、以下のようなエラーが出ます。 ``` $ git push -u origin master ssh: connect to host git.test.com port 22: Connection refused fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. ``` 調べて色々試してみたのですが、解決する事が出来ていません。 22番Portに繋ぎに行っているように見えるので、URLを ssh://git@git.test.com:10022:test/test.git のように試してみたのですが、結果は同じでした。 (繋がらなかったのでssh://git@git.test.com:test:10022/test.gitも) eval `ssh-agent` ssh-add ~/.ssh/id_rsa この辺りも試したのですが駄目でした。 config/gitlab.yml ここに、「ssh_port: 10022」を設定する、と言う記述を見付けたのでそちらも試しましたが、それをするとGitLabのURLにアクセスした際502になってしまった為、今は戻しています。 「/var/log/messages」のログは、以下の通りです。 ``` Sep 3 05:03:13 133-130-106-145 nm-dispatcher: Error: an inet prefix is expected rather than "xxxxxxxxxxxxxxxxxxxxxxxxxxx". 「/var/log/secure」のログは、以下の通りです。 Sep 3 04:50:16 133-130-106-145 sshd[10846]: pam_unix(sshd:session): session opened for user git by (uid=0) Sep 3 04:50:16 133-130-106-145 sshd[10848]: Received disconnect from 133.130.106.145: 11: disconnected by user Sep 3 04:50:16 133-130-106-145 sshd[10846]: pam_unix(sshd:session): session closed for user git ``` 何かどこかを間違えているのだと思いますが、どなたかおわかりになりませんでしょうか? お手数お掛け致しますが、宜しくお願い致します。
回答: もしgitlabのインストールをomnibusパッケージ(`yum`でインストールされたのでしたらこちらでしょう)で行ったのであれば、編集すべきは`gitlab.yml`ではなく`/etc/gitlab/gitlab.rb`です。 今回の場合であれば`gitlab_rails['gitlab_shell_ssh_port']`と書かれた行のコメントアウトを外して値を`10022`へ変更した後、`sudo gitlab-ctl reconfigure`コマンドを実行すれば反映されるはずです。 正常に反映されれば、各プロジェクトのトップページに記載されているURLも正しい値(おそらくはyaegashiさんの書かれている通り `ssh://git@git.test.com:10022/test/test.git`)に更新されます。 `~/.ssh/config`の編集は必須では有りません。 参考: * GitLab Documentation - Changing gitlab.yml and application.yml settings * GitLab で使用する SSH のポート番号を変更する | バシャログ。 (以下、上記とは関連のない別解です) GitBash, SourceTree, TortoiseGit を動かそうとしているホスト(Windows)の方で `~/.ssh/config` を設定していないのではないでしょうか。 `git@git.test.com:test/test.git` でアクセスするためにはWindows環境でも同じ設定が必要です。