2005年7月12日(火)

裏口から co

ネットワーク構成が妙に厳しくって不自由なので、何とかウラをかく事を考える。

やりたいことは LAN の奥にあるリポジトリからの checkout (と update/diff) なんだが、こいつ vpn で LAN の中に突っ込んでいかないと絶対に触れない位置にありやがる・・・
じゃあ checkout 先を vpn で押し込んでやればいいかっていうと、押し込んだ瞬間にこっちのネットから切れるのでコントロールできなくなって無意味。
webdav があったので、リポジトリサーバからマウントしようかと思ったら、 davfs2 のパッケージないし
しょうがないんでリポジトリ側から checkout 先へ ssh でトンネルを掘っておき、これを裏口にして checkout することにした。

ssh port forwarding なんてもう何年もやってないからすっかり忘れてる。
こういうときだと、向こうから -R xxx:localhost:22 otherhost とやってやると other:xxx から向こうの 22 に流れるようだ。ええい、オプションが覚えにくい。 -L の時は (localhost:)xxx:remotehost:yyy と考えるとなんとなく対照的なんだが、これはこれで ssh 投げる先が冗長に感じるし・・・

cvs の側は ext: にしたとき、ホストまでは指定できるけど port までは指定できない罠が。さらに CVS_RSH="ssh -p nnnn" とかやると、 "ssh -p nnnn" という実行ファイルを探しにいく罠まで・・・。
答えは、1行スクリプトを書く。萎え。
~/.ssh/config で ssh に localhost へは port nnnn を使わせるって手もあるらしい。

ああ、ここまでやってから shfs を思い出した。けど、もういいや。

参考: ssh /MacOSX /xyz9

[referer: [an error occurred while processing this directive]]

あわせて読みたい