Windows10でもリモートデスクトップ接続したいだけなのにわざわざVPNを繋ぎたくない
リモートデスクトップ接続したいだけなのにわざわざVPNを繋ぎたくない
をWindows10でもやってみた
環境
[Windows10 PC]−(インターネット)→[Ubuntu Server]→[Windows PC]
設定メモ
※ sshトンネルを受け入れるUbuntu Server側の設定はリモートデスクトップ接続したいだけなのにわざわざVPNを繋ぎたくないを参照
いまどきはWindows10にもsshコマンドが標準でインストールされている
Microsoft Windows [Version 10.0.19042.906]
(c) Microsoft Corporation. All rights reserved.
C:\Users\staff01>ssh -V
OpenSSH_for_Windows_7.7p1, LibreSSL 2.6.5
認証用の鍵を生成する
Microsoft Windows [Version 10.0.19042.906]
(c) Microsoft Corporation. All rights reserved.
C:\Users\staff01>ssh-keygen -t rsa -b 4096
Generating public/private rsa key pair.
Enter file in which to save the key (C:\Users\staff01/.ssh/id_rsa):
Created directory 'C:\Users\staff01/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in C:\Users\staff01/.ssh/id_rsa.
Your public key has been saved in C:\Users\staff01/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:UDdeOOFtU0KY0dD4lH+Bn/LVQbjkr2NyqB/qIKPHp88 staff01@DESKTOP-JQ1DBQM
The key's randomart image is:
+---[RSA 4096]----+
| . *%+.=. |
| . +*+=* o |
| . o+*.o =|
| . ..=.o+|
| S +..|
| o |
| .o . .. . |
| .o+.. .o.= |
| ...+E.+o.+ . |
+----[SHA256]-----+
生成された公開鍵をUbuntu Serverのauthorized_keysに追記する
USBメモリなどに生成されたid_rsa.pub
をコピーして、既に設定済みの端末から該当のアカウントの.ssh/authorized_keys
ファイルに追記します
パスワード認証も有効にしておけばscp
コマンドで転送したり、ssh
コマンドで接続してコピペもできるのでしょうが、どれだけ複雑なパスワードを設定していたとしても外向きに公開しているサーバーでパスワード認証を使えるようにしておくのは絶対に止めましょう
接続テスト
Microsoft Windows [Version 10.0.19042.906]
(c) Microsoft Corporation. All rights reserved.
C:\Users\staff01>ssh staff01@gatekeeper
- sshトンネルを経由してWindows PCにRDP接続する
Microsoft Windows [Version 10.0.19042.906]
(c) Microsoft Corporation. All rights reserved.
C:\Users\user>ssh -N -L 13389:172.29.100.253:3389 staff01@gatekeeper
C:\Users\user>mstsc /v:localhost:13389 /admin
便利になりそうなバッチファイルを作成する
@echo off
Set /P SERVER=接続先のIPアドレス?:
Set /P USERNAME=ユーザー名?:
Set /P PASSWORD=パスワード?:
rem sshトンネルを接続する
start /b ssh -N -L 13389:%SERVER%:3389 gatekeeper
rem RDP接続する
Timeout 3
rem Windows資格情報を作成する
Cmdkey /generic:TERMSRV/localhost /user:%USERNAME% /pass:%PASSWORD%
rem mstsc /v:localhost:13389
mstsc /v:localhost:13389 /admin
rem 作成したWindows資格情報を削除する
Cmdkey /delete:TERMSRV/%SERVER%
rem sshを終了する
taskkill /F /IM ssh.exe
.sshのconfigファイルはWindows10でも書いておける
Host gatekeeper
Hostname gatekeeper.example.co.jp
Port 22222
User staff01
Host rdbroker
Hostname 172.31.0.254
ProxyCommand C:\Windows\System32\OpenSSH\ssh.exe gatekeeper -W %h:%p
Port 22223
User staff01
のようにしておくと、接続に多段なsshトンネルが必要な場合も対応できる
※ Windows環境でProxyCommandを指定するときは、sshコマンドの絶対パスで指定するようにする
竹内電設は、大阪府下を中心に中小規模の組織がITシステムを効果的に活用するための、お手伝いをさせていただいております
© 2023 竹内電設; all rights reserved.