hogashi.*

日記から何から

TortoiseGitでSSHサーバへリモート

 Web開発を複数人でしたかったのでSSHサーバを立ててもらい、Gitを組むことにしました。

 見事にハマりました。何故かエラーでサーバへのプッシュ/プルなどGit操作ができなかったのです。解決しましたが(後述)。

 サーバはUbuntu12.04、OpenSSH-serverを使用。クライアントはWindows7、TortoiseGitを使用。

 クライアント側、TortoiseGitのリモートの設定は以下のようにしていました。

リモート: RemoteName
URL: username@hostname.jp:65022/home/username/hoge
プッシュURL: username@hostname.jp:65022/home/username/hoge
    #hogeはディレクトリ

 症状は以下でした。

 ・SSHサーバを立てた友人は、ローカル環境内からサーバに対して、プッシュ/プルその他の操作をすることが出来た

 ・SSHサーバのポートを解放してもらい、グローバルから接続しようとして、エラーになったので操作が出来なかった(エラーメッセージは以下)

git.exe pull -v --no-rebase --progress "RemoteName" master

fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.


gitは正常に終了しませんでした (終了コード 1) (23447 ms @ 2015/03/28 14:56:49)


 どうもポート番号以下全部をサーバ内のパスと認識しているようなエラー。色々調べました。


 解決方法は以下でした。

 クライアント側、TortoiseGitリモートの設定を以下のように変更。

リモート: RemoteName
URL: ssh://username@hostname.jp:65022/home/username/hoge
プッシュURL: ssh://username@hostname.jp:65022/home/username/hoge
    #ssh://を追加

 これを見つけるまでに数時間かかった…。SSHの他にGitを行う方法があるのかわかりませんが、明示的にSSHを指定しなければならなかったようです。