ブラウザの”ssh://~”でTera Termを起動する方法

最近,セキュリティの勉強目的でHack The Boxをやっている.常設型CTFのような形で初心者にもわかりやすく,おすすめ.HTBの機能の1つであるPwnBoxは可能マシンを建てて貸してくれるので,環境構築が不要で楽.

で,本題.PwnBoxを建てて[OPEN SSH TERMINAL]をクリックするとブラウザ上で”ssh://user@example.com”に飛ばされる.ただしブラウザ上ではsshに対応するソフトウェアが登録されていないため,何も起きず,毎回手動でTera Termに貼り付けることになる.そこで,今回はブラウザ上で”ssh://user@example.com”と入力された際に自動的にTera Termを起動する設定を行う.

まずはじめに,Tera Termのコマンドライン起動について.コマンドプロンプトから起動する場合,構文は以下のようになる.

C:\Users\pome> "C:\Program Files (x86)\teraterm\ttermpro.exe" user@example.com

またはポート番号とプロトコルを明示的に記述すると以下のようになる.

C:\Users\pome> "C:\Program Files (x86)\teraterm\ttermpro.exe" user@example.com:22 /ssh

詳細なコマンド設定についてはマニュアルを参照.

次に,上のコマンドをレジストリに登録する.Microsoftのドキュメントを参考に,以下のように登録を行う.登録方法はレジストリエディタを起動([Win+r],regedit)し,HKEY_CLASSES_ROOTの下にキーを追加していく.追加は右クリックから[新規(N)]-[キー(K)]か[文字列値(S)]とすればよい.

HKEY_CLASSES_ROOT
	ssh
		(Default) = "URL:ssh Protocol"
		URL Protocol = ""
		DefaultIcon
			(Default) = "ttermpro.exe,1"
		shell
			open
				command
					(Default) = "C:\Program Files (x86)\teraterm\ttermpro.exe" "%1:~5%"

なお,%1:~5%の意味としては,%1にssh:user@example.comが入るので,:~5%とすることで5文字目から末尾までを抜き出している(user@example.com).最終的には以下のような形になる.

これで,ブラウザ上から直接Tera Termを起動することができた.