コンテンツへスキップ

【Windows Server 2019】SSH ポートフォワーディング(トンネリング)経由で、リモートデスクトップ接続する。

Windows Server のリモートデスクトップ接続も、よりセキュアにしたい。

RDP 通信自体は暗号化されていますが、

セッション開始のログインがパスワード認証だけだと不安。

暗号鍵認証を導入したい。

ファイアウォールに余計な穴を開けておきたくない。

という方にいかがでしょうか。

昨今、Windows でもSSH 接続が標準で使えるようになってきた訳ですし。

SSH ポートフォワーディング(トンネリング)経由で、リモートデスクトップ接続する。

RDP 接続をSSH 接続でよりセキュアにしよう。

AWS のEC2 でのLinux サーバー構築向けのドキュメントに、
SSH ポートフォワーディング 経由でリモート接続をする手順が書かれていました。

■ [AWS] 「Amazon Linux 2」に、Windows 10 からGUI で接続する。

これならリモート先のサーバーのファイアウォールを貫通できるし、暗号鍵認証も使えるからいいね。
ということで、WindowsServer でもやってみた。という話です。

まずはSSH 接続の準備をする。

鍵認証SSH 接続を設定するまでの手順です。


リモートデスクトップ接続の準備をする。

デフォルトではRDP(リモートデスクトップ)は有効になっていません。

Windows Home エディションとかも対応していません。

サーバー側で、リモート接続を有効する。

Windows ロゴマーク > 設定 > システム をクリックします。

1.「リモートディスクトップ」 をクリック。
2.「リモート デスクトップ を有効にする」をオン にします。

はーい。有効にしまーす。

必要に応じていろいろと決めてください。

ポート「3389」を開放しない(ファイアーウォールで通過させない)。

リモート接続を有効にすると、同時にリモート接続用のポートが開かれるので閉じておきます。

SSH でトンネリングする場合、ファイアーウォールも越えられるので、この設定は不要です。

これで3389ポートから普通にリモート接続することは困難に。

通常のリモートデスクトップ接続ができないことを確認。

先ほど、リモート接続ポート通過用の規則を無効化しているので、
普通に接続すると、ファイアウォールにプロックされて接続できません。

SSH ポートフォワーディングを使ってリモートデスクトップ接続する。

SSH ポートフォワーディングを使ってトンネリング。

Power Shell などで下記のコマンドを実行。

<接続先のポート番号>を<自身のポート番号>にマッピングしています。
※改行しないで、1行で実行します。

ssh -L <自身のポート番号>:<接続先サーバー名 or IPアドレス>:<接続先のポート番号> 
 -i <秘密鍵の場所>/<秘密鍵ファイル名> <接続先ユーザー名>@<接続先サーバー名 or IPアドレス>

実行例:

ssh -L 3389:192.168.3.29:3389 -i .ssh/id_rsa uniuni@192.168.3.29

SSH 接続した時と同じです。
Power Shell はこのまま開いておきます。
※閉じると、ポートフォワーディングが停止されます。

リモートデスクトップ接続する。

現在、サーバーの3389 ポートがローカルの3389 にマッピングされている状態ですので、
ローカルホストを指定してリモートデスクトップ接続が可能です。

接続できました。(※1)

※1:奥のVM の画面はロック画面になり、手前のリモート接続に切り替わっています。

接続状況の確認

参考までにWireshark で通信状況を確認してみました。

SSH 経由でリモートデスクトップ接続した場合。

ループバック

イーサネット

普通にリモートデスクトップ接続した場合。

ループバック

イーサネット

発生するかもしれない事例と対策について。

私の環境では起きたので、対処法をメモして置おきます。

既に進行中のコンソールセッションがあるため、、、

リモートデスクトップ接続するときに「 既に進行中のコンソールセッションがあるため、、、 」のエラーが出るときは、下記の様に接続するポートを変えてみてください。

※60000番は適当に決めてます。

 ssh -L 60000:192.168.3.29:3389 -i .ssh/id_rsa uniuni@192.168.3.29

60000 番ポートへリモートデスクトップ接続する。

しばらくすると、SSH 接続が切れて、リモートデスクトップ接続が中断してしまう場合。

サーバーのssh.config ファイルにて、下記のプロパティをコメントアウトを外して有効にする。

ClientAliveInterval 0

sshd を再起動します。

以上です。

(Visited 67 times, 1 visits today)

「【Windows Server 2019】SSH ポートフォワーディング(トンネリング)経由で、リモートデスクトップ接続する。」への1件のフィードバック

  1. ピンバック: Windows で SSH 接続する時のまとめ。Windows 10、Windows Server 2016、2019 - .zapping

コメントを残す

メールアドレスが公開されることはありません。