LoginSignup
8
9

More than 5 years have passed since last update.

Windowsを経由してssh接続する

Posted at

例えばなんですが。

顧客のサーバがありまして、そこに繋ぐにはVPNを張らなくちゃいけなくて、そのVPNを張るにはWindowsからじゃないとダメ(VPNのセッションを確立するプログラムが.exeとか)で、でも普段はWindows使わずにUbuntuとかで開発してて。

こんな場合、いちいちUbuntuとWindowsを行ったり来たりするの面倒ですよね。例えばとか言いながら今そんな状態で、今まではSynergyで行ったり来たりしてたのですが、それだと僕しか使えませんでした。

なので、「VPNを張った状態のWindowsを経由して、Ubuntuからssh接続する」をやってみた。

まず下記の要件とします。

各マシン IPアドレス
Ubuntuマシン(自分の開発に使ってるやつ) 192.168.10.1/24
Windowsマシン(こいつを経由する) 192.168.10.2/24
サーバ(最終的にこいつに繋ぐ) 192.168.20.1/24

VPNを張るのはそれぞれのソフトのやり方があると思うので、それは省略し、まずはWindowsを経由できるように、Windowsマシンにプロキシをインストールします。使用するのはSquidで、http://uguisu.skr.jp/Windows/squid_win_tips.html みたいな感じでインストール。

なお、aclをsquid.confに記述する箇所がありますが、上記の例では192.168.10.0/24とします。VPNが張られ、Squidが起動していればWindowsの方は準備OKです。

次にUbuntuからsshコマンドで接続するのですが、プロキシを経由するためにconnectコマンドをインストールします。

$ sudo apt-get install connect-proxy

これでconnectコマンドがインストールされました。次に~/.ssh/configに下記を追記します。

Host server-with-proxy
    User takkkun
    ProxyCommand connect -H 192.168.10.2:3128 192.168.20.1 22

ProxyCommandでどこを経由し、どこに繋ぐかを指定する感じですね。Hオプションでプロキシを。今回はWindowsマシンなので、そのIPアドレスである192.168.10.2と、Squidがデフォルトで使用するポート番号である3128を指定(squid.confで変更してたらもちろんここは変更)。そして最終的に接続したいサーバのIPアドレスとポート番号を指定って具合です。

これで後は:

$ ssh server-with-proxy

とするだけで、Windowsにインストールしたプロキシを経由し、VPNのトンネルを抜けてサーバに接続することが出来ます。めでたし。

8
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
9