読者です 読者をやめる 読者になる 読者になる

Tamflexの貯蔵庫

やる気のない備忘録

ssh経由でリモートとローカルを判別してLAN内のサーバに接続する

IT IT-linux(ubuntu) IT-network

LANの中にgitBucket用のサーバがあり、ノートPCでLANの内側・外側の両方から切り替えを自動化してアクセスしたいと考えて.ssh/configの設定を考えてみた。自分がLANの内側か外側にあるのか判別するにはnslookupを使えばいいことに気が付き以下のように.ssh/configを書いてみた。

Host Goal
        Port p_Goal
        User u_Goal
        HostKeyAlgorithms ssh-dss
        IdentityFile /path/to/file_Goal

Match host Goal exec "nslookup Goal"
        ProxyCommand None

Match host Goal
        ProxyCommand ssh Jump nc %h %p

Host Jump
        Hostname Jump
        Port p_Jump
        User u_Jump
        IdentityFile /path/to/file_Jump

GoalサーバにgitBucket用のサーバがあり、外部から接続するときはJumpサーバを踏み台にアクセスする状況を想定している。nslookupをもちいて自分のPCがどこにいるのかを判別する。それによってProxyCommandを変化させればうまいこと切り替えてくれる。
nslookupしか思いつかなかったけど他にいい方法があれば教えてくださいm(_ _)m