

いつもお世話になっています。  
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等々セッティングして、

[code]

    $ ssh git@git.test.com
    
[/code]

で問題なくログイン出来ていると思います。（Welcome to GitLab, test!表示出ます）

[code]

    Host git.test.com
      User git
      Port 10022
      HostName git.test.com
      RSAAuthentication yes
      IdentityFile ~/.ssh/test/id_rsa
    
[/code]

また、GitLabでプロジェクトを作成した際に提示される「Create a new
repository」の手順通りにサーバー上で操作したところ、該当プロジェクト内にGitの操作履歴が表示されることも確認できています。

[code]

    $ 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
    
[/code]

ここまで確認できたので、SourseTreeやToutoisGitなどで接続を試みたのですが、以下のようなエラーが出ます。

[code]

    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.
    
[/code]

また、Git Bashで試みたところ、以下のようなエラーが出ます。

[code]

    $ 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.
    
[/code]

調べて色々試してみたのですが、解決する事が出来ていません。  
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」のログは、以下の通りです。

[code]

    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
    
[/code]

何かどこかを間違えているのだと思いますが、どなたかおわかりになりませんでしょうか？  
お手数お掛け致しますが、宜しくお願い致します。


CC BY-SA 3.0
2016-09-02T20:11:47.430
28658
2016-09-03T08:37:57.877
2016-09-02T20:50:46.227
2214
10463
question
git
Git接続が上手くいかない


URL 形式を使うのであれば

[code]

    ssh://git@git.test.com:10022:test/test.git
    
[/code]

ではなく

[code]

    ssh://git@git.test.com:10022/test/test.git
    
[/code]

が正しいのではないかと思います。


CC BY-SA 3.0
2016-09-03T03:28:32.000
28663
2016-09-03T03:28:32.000
9873
28658
answer


もしgitlabのインストールをomnibusパッケージ(`yum`でインストールされたのでしたらこちらでしょう)で行ったのであれば、編集すべきは`gitlab.yml`ではなく`/etc/gitlab/gitlab.rb`です。  
今回の場合であれば`gitlab_rails['gitlab_shell_ssh_port']`と書かれた行のコメントアウトを外して値を`10022`へ変更した後、`sudo
gitlab-ctl reconfigure`コマンドを実行すれば反映されるはずです。

正常に反映されれば、各プロジェクトのトップページに記載されているURLも正しい値(おそらくは[yaegashiさんの書かれている](https://ja.stackoverflow.com/a/28663/2808)通り
`ssh://git@git.test.com:10022/test/test.git`)に更新されます。

`~/.ssh/config`の編集は必須では有りません。

参考:

  * [GitLab Documentation - Changing gitlab.yml and application.yml settings](http://docs.gitlab.com/omnibus/settings/gitlab.yml.html#changing-gitlab.yml-and-application.yml-settings)
  * [GitLab で使用する SSH のポート番号を変更する | バシャログ。](http://bashalog.c-brains.jp/14/11/18-151735.php)

* * *

(以下、上記とは関連のない別解です)

GitBash, SourceTree, TortoiseGit を動かそうとしているホスト(Windows)の方で `~/.ssh/config`
を設定していないのではないでしょうか。  
`git@git.test.com:test/test.git` でアクセスするためにはWindows環境でも同じ設定が必要です。


CC BY-SA 3.0
2016-09-03T07:58:35.260
28667
2016-09-03T08:37:57.877
2017-04-13T12:52:38.920
-1
2808
28658
answer