LoginSignup
5

More than 5 years have passed since last update.

SSHトンネリングでRDP接続する

Last updated at Posted at 2015-04-12

WindowsPCでTeratermのSSH転送機能を利用し、RDP接続する方法です。
借用PC等でTeratermやRDP履歴(レジストリ)に残したくないという方に。
というか主に自分向け。

前提

  1. SSH接続出来るルータなりLinuxサーバなりが存在する
  2. その機器からRDP接続が可能である
  3. Teratermと下記2つのScriptを端末に準備出来る
    • TeraTermはDL、Scriptはここからコピペでちょっと編集して保存

使い方

  1. SSH-Tunnel.batを実行
  2. SSHサーバにログインする
  3. RDPの認証情報を入力

SSH-Tunnel.BATの処理内容

  1. 指定したFQDNに対しTeraTermでSSH転送による接続し、TeraTermマクロを呼び出し

SSH-Tunnel.TTLの処理内容

  1. SSH接続先のプロンプト待ち受け
  2. 接続完了時のプロンプトが表示されたら、MSTSCコマンドによるRDP接続
    • ここでMSTSCの終了を待つ
  3. 一度空行を入力し、再度プロンプト待ち受け
  4. プロンプトが表示されたらSSH切断
  5. 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

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5