自宅サーバーのリモートデスクトップを実家とか外出先からセキュアにアクセスできるようにSSHポートフォワーディングの設定をしたいと思ってたんですが、なかなか時間がなくて放置してました。

やんなきゃいけない事はいっぱいあったんですが、現実逃避で先週ようやく設定してみました。以下、備忘録として残しておきます。

サーバーはOpenSSHなんですが、クライアント側はどうすっかな〜〜と悩んだ挙句、設定が簡単そうなのでPuttyを使うことにしました。

1. まずサーバー側のOpenSSHの設定



今まで、cygwinのOpenSSHのサーバーは立ち上がっていたんですが、ポートフォワーディングができるように/etc/sshd_configに以下の設定を追加します。

AllowTcpForwarding yes


2. SSHの疎通確認



事前にSSHで外部から接続できるか確認しておきます。ブロードバンドルーターでは、SSH用のポート(デフォルトは22/tcpだけども、ポートスキャン避けに変更してある)をバーチャルサーバー機能で自宅内のOpenSSHサーバーのポートに転送するよう設定しておきます。

構成はこんな感じで、どなたの家でもこんなもんだと思います。(実際のIPとは異なる)
puttyy08


3. OpenSSH鍵形式からPutty用への変換



普段はcygwinのOpenSSHで繋いでるんですが、ポートフォワーディング用には設定が簡単なPuttyにしてみたので、普段使っているOpenSSH形式の秘密鍵をPutty用に変換しなければなりません。これには puttygen.exe(Putty Key Generator)を使います。起動して、メニューのConversions→Import Keyを選んで、OpenSSHの秘密鍵(~/.ssh/id_rsa等)を選んで、秘密鍵のパスワードを入力すると秘密鍵の情報が表示されます。
putty07_


そして「Save private key」ボタンをクリックして場所を指定すれば、Putty用の秘密鍵ファイル(*.ppk - Putty Private Key)が生成されます。

Puttyクライアントの接続先設定



Puttyの接続設定を行います。,砲魯ぅ鵐拭璽優奪箸ら参照できる自宅ブロードバンドルーターのIPアドレスまたはホスト名、△砲論茲曚廟楝海燃稜Г靴審杏瑤ら参照できるSSHのポート(デフォルトは22/tcpだが変更してある)を指定します。
putty01_


PuttyのSSHポートフォワーディングの設定



ポートフォワーディングは接続設定ダイアログの右側のツリーペインの箇所の接続→SSH→トンネルで行います。源ポートのフィールドにはイ離檗璽肇侫ワーディングした際にSSHクライアントのPCから参照するポート番号を指定します。ローカルで使用されている他のポートと重複しなければどのポートでもかまいませんが、例えば13389としておきます。送り先のフィールドはポートフォワーディング先のサーバー側のマシンとポートい鮖慊蠅靴泙后ポートはリモートデスクトップを対象にする場合にはそのポート3389を指定します。SSH接続先から参照できるHTTPなど他のサービスも転送したい場合には、追加でいくつでも指定できます。はブロードバンドルーターを使用している環境では、LAN上のIPアドレスになることに注意してください。(私はこれでハマりました。)

送り先は例えば「192.168.25.6:3369」のように指定します。

putty02_


SSH秘密鍵の設定


PuttyのSSH接続で使う先ほど変換した秘密鍵を使います。設定は左側ツリーペインで接続→SSH認証で設定します。
putty03_


セッションの設定画面に戻って、接続の名称を指定して、保存しておけば今後も設定を簡単に利用できます。

以上で設定は終わりです。

自宅へのリモートデスクトップ接続



接続設定をロードして、接続します。秘密鍵のパスワードを聞かれるので入力するとSSHセッションが張られ、SSHポートフォワーディングも有効になっています。

先ほどの設定では、ローカルPCの指定ポートを使えば、自宅サーバーのリモートデスクトップが利用できるようになっており例えば

C:\> mstsc /v:localhost:13399


のようにすれば自宅PCのリモートデスクトップが開くはずです。

今日はこんなとこで、、、

ではでは