WindowsPCでTeratermのSSH転送機能を利用し、RDP接続する方法です。
借用PC等でTeratermやRDP履歴(レジストリ)に残したくないという方に。
というか主に自分向け。
前提
- SSH接続出来るルータなりLinuxサーバなりが存在する
- その機器からRDP接続が可能である
- Teratermと下記2つのScriptを端末に準備出来る
- TeraTermはDL、Scriptはここからコピペでちょっと編集して保存
使い方
- SSH-Tunnel.batを実行
- SSHサーバにログインする
- RDPの認証情報を入力
SSH-Tunnel.BATの処理内容
- 指定したFQDNに対しTeraTermでSSH転送による接続し、TeraTermマクロを呼び出し
SSH-Tunnel.TTLの処理内容
- SSH接続先のプロンプト待ち受け
- 接続完了時のプロンプトが表示されたら、MSTSCコマンドによるRDP接続
- ここでMSTSCの終了を待つ
- 一度空行を入力し、再度プロンプト待ち受け
- プロンプトが表示されたらSSH切断
- RDP接続履歴をレジストリから削除
SSH-Tunnel.BAT
@ECHO OFF
SETLOCAL
START "" "C:\Program Files\teraterm\ttermpro.exe SSH接続先FQDN or IP:SSHサーバのポート /ssh 2 /ssh-Lループバックアドレス:待ち受けポート:転送先IPアドレス:待ち受けポート /V /M="SSH-Tunnel.TTLのFull Path"
ENDLOCAL
SSH-Tunnel.TTL
show 0
timeout = 30
wait 'vyos@vyos:~$'
if result=0 goto :FIN
exec 'MSTSC /V ループバックアドレス /w 1364 /h 710 /admin' 'show' 1
sendln ''
wait 'vyos@vyos:~$'
sendln 'exit'
exec 'reg delete "HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Default" /v MRU0 /f' 'minimize' 1
exec 'reg delete "HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers\ループバックアドレス" /f' 'minimize' 1
:FIN