🔒

リモートデスクトップを簡単に出来るようにした

2022/03/08に公開

やりたいこと

  • 自宅にある高スペックなPCに低スペックなモバイル端末から接続したい
  • 安全に接続したい
環境

デスクトップPC
Windows 11 Pro

モバイルPC
Windows 11 Education

回線
BIGLOBE(MAP-E)

いままで

※図はめちゃくちゃデフォルメしてある
Raspberry Pi4でSoftEther VPN Serverを構築することで、LANに接続して宅外からもリモートデスクトップ出来るようにしていた。

メリット

  • RDPのポートを直接開けることなくリモートデスクトップ出来るように
  • リモートデスクトップ以外の全ての通信も自宅を経由するので色々できる
  • 公衆Wi-Fiもセキュアに使える

デメリット

  • Raspberry Piの電源を忘れずに入れなければいけない
  • Raspberry Piのセキュリティに気を使わなければならない(Linuxよくわからない)
  • SoftEther VPN はパスワード認証なのでちょっと怖い

これから

※図は簡略化してある
モバイルPCからデスクトップPCにSSH接続をしてSSHポートフォワードでリモートデスクトップをする。

メリット

  • RDPのポートを直接開けることなくリモートデスクトップ出来る
  • 公開鍵認証でセキュリティを高められる
  • PCの電源さえ入っていれば良い(WoLを使えば入っていなくても良い)
  • PCさえセキュリティに気を使えば良い(Windowsだからまあ大丈夫だろ)

デメリット

  • モバイルPCの全ての通信が暗号化された経路を通るわけではないため、公衆Wi-Fiを安全に使うことには役立たない

設定方法

モバイルPC側

  • TeraTermを入れる
  • 鍵を生成する
  • TeraTermの設定
  • リモートデスクトップの設定

手順

鍵生成

詳しくは省略

ssh-keygen -t ed25519

teratermでもできる。いつもcmdで生成している。

鍵転送

デスクトップPCに公開鍵(.pubのほう)を転送する。
Windows同士なら近距離共有が便利。

TeraTerm-SSHポート転送の設定
  1. ローカルのポートに「任意のポート番号*1」を入れる(例55555)
  2. リモート側ホストに「127.0.0.1」と入れる
  3. ポートに「3389」と入れる
TeraTerm-SSHポート認証の設定
  1. デフォルトユーザー名を使用にデスクトップPCのユーザー名を入れる
  2. ED25519鍵を使うのところに秘密鍵のパスを入れる
TeraTerm-SSH接続
  1. 新しい接続
  2. [ホスト]にデスクトップPCのアドレス(テストするときローカルなら192.168.10.2とか。LAN外ならグローバルアドレス)
  3. [TCPポート]にSSHのポート番号(テストするときローカルなら22が標準。IPv4 over IPv6とかで任意に決めてあるならその番号)
リモートデスクトップの設定
  1. リモートデスクトップ接続を起動
  2. コンピューターにlocalhost:「任意のポート番号*1」を入れる(例 localhost:55555)

デスクトップPC側

やること

  • OpenSSHサーバーを有効にする
  • sshdの設定
  • ファイアーウォールを設定する
  • 公開鍵の登録

手順

  1. スタートから「オプション機能」で検索
  2. オプション機能を追加する[機能を表示] からOpenSSHサーバーをインストール
  3. インストール後スタートアップの種類を自動(遅延開始)にする //スタートアップ時自動起動してくれる
  4. "C:\ProgramData\ssh\sshd_config"を適切に設定
PasswordAuthentication no
ChallengeResponseAuthentication no
  1. sshdを再起動
  2. スタートから「ファイアーウォール」で検索し「セキュリティが強化されたWindows Defender ファイアーウォール」を起動
  3. [受信の規則]からリモートデスクトップの[プロパティ]を開き[スコープ]からリモートIPアドレスに127.0.0.1と入れる(3つとも) //ややセキュリティ強化
  4. 公開鍵を「authorized_keys」という名前にリネームして「C:\Users(ユーザー名).ssh\authorized_keys」に保存。※すでにある場合は付け足す

ルーター

  • ポートマッピングを適切に設定をする
    ※詳細は省く

つまずいたところなど

  • 127.0.0.1(localhost)と入れなければならないところを間違えて172.0.0.1と入れていて半日潰した。
  • teratermを閉じるたびにSSH転送やSSH認証の設定をするのはめんどくさいので、Documentsフォルダに設定を保存すると設定が保持されるよ

参考にしたサイト

外部から社内や自宅内のパソコンをリモートデスクトップで操作(SSHポートフォワーディング)(2022/03/08閲覧)

Discussion