TeraTermのマクロでWSLのSSHデーモンを起動して接続する方法

WSL上のSSHデーモンは、Windows再起動時に自動起動しません。

WSLのSSHを起動するにはWSLにログインしてSSHを起動するコマンドを入力するか、以下のコマンドをバッチファイルなりにして実行すれば起動します。

wsl.exe -u root -- service ssh start

TeraTermのマクロでローカルのWSLにSSH接続する際、SSHデーモンが起動してなければ自動的にSSHデーモンを起動して接続できるようにした時の忘備録です。

WSLのSSHデーモンを起動するTeraTermマクロ

先ほどの起動コマンドをバッチファイル化し、Windowsのスタートアップに組み込んでもいいのですが、TeraTermのマクロはEXEを起動することもできます。

TeraTermのマクロの先頭付近に以下の1行を追加します。

exec 'cmd /c C:\WINDOWS\Sysnative\wsl.exe -u root -- service ssh start' 'hide' 1

C:\Windows\system32\wsl.exeの起動に失敗する?以下補足

TereTermのマクロは32bitプロセスで動いているため、cmdで呼び出されるコマンドプロンプトは32bitプロセスが起動されます。

最初に試したマクロ(失敗します)

exec 'C:\Windows\system32\wsl.exe' 'hide' 1

調査をするために以下の1行をTeraTermのマクロの冒頭に記述します。

exec 'cmd' 'maximize' 1

以下調査していた時の画面

解決の参考にさせていただいたサイト

ここの末尾にさらっと書かれていますが、ネイティブなんたらかんたら・・・

https://ttssh2.osdn.jp/manual/4/ja/macro/command/exec.html

なんのこっちゃさっぱりわからなったのですが、以下のサイトが問題解決にすごく役に立ちました。

コメント

タイトルとURLをコピーしました