Calender
Sun Mon Tue Wed Thu Fri Sat
   1234
567891011
12131415161718
19202122232425
262728293031 
<< May 2019 >>
広告
SEARCH

SELECTED ENTRIES
RECENT COMMENTS
RECENT TRACKBACK
CATEGORIES
ARCHIVES
LINKS
PROFILE
OTHERS
SKYPE
PC: skype.jojo.jp
chat
iPad: iphone.jojo.jp
chat call
THANKS



本日:
昨日:
多言語
広告
 ▼▲ 作業日報 ▼△
    What's under the hood?
<< Ubuntu ExpressCardの認識 | main | Ubuntu12 メニュー変更 >>
git ssh利用可能時のproxy代替案
gitでサーバー(インターネット上のリポジトリ)へ直接接続出来ない場合の設定方法

外部のgitのインターネット上のリポジトリ(ssh)に接続するのに
git-daemonやsshのプロキシ設定するか、stoneの線で調べていたのですが、よく考えればSSHのポートフォワード機能(AllowTcpForwarding)を利用できれば中継用のSSHサーバーを介して外部リポジトリへ接続が可能です。hostAからフォワードの設定を行ないhostB,hostCの設定は不要。

hostA:1111 --> user2@hostB:2222 --> user3@hostC:3333
  自分      中継機     共有リポジトリ

※sshを22番ポートで利用している場合はポート指定は不要です

リンク:
SSHD_CONFIG (5)
例として、hostAが作業場所で、リモートリポジトリがuser3@hostC:3333に存在するとします。
中継のsshサーバーとしてuser2@hostB:2222を利用し、ローカルポート1111で設定します
(ポート番号が22の場合はポート指定は不要)
hostAにて
$ssh -f -N -L 1111:hostC:3333 -p 2222 user2@hostB
引数説明:
-L ... [ローカルポート]:[転送先サーバ]:[転送先ポート] [中継先ユーザ]@[中継先サーバ]
-f ... forkします、終了させるときはプロセスをKILLします
-N ... シェルを立ち上げません
※hostCのユーザ(userC)は接続時に指定
これでローカルポートの1111番でhostC:3333へ接続できるようになっています、hostCのユーザ名は接続時に指定します。
$git clone ssh://user3@127.0.0.1:1111/some/where/git/dir

$git remote add origin ssh://user3@127.0.0.1:1111/some/where/git/dir
が可能になります。


ただしgit push するときは必ずフォワードしておく不便さはあります、、

あ、inetd使えば自動で出来るかも、
| 開発関連 | 16:44 | comments(0) | trackbacks(0) |









http://blog.jojo.jp/trackback/1424906