SSHを使用せずにTeratermからWSLを使う


ALHアドベントカレンダー2020
12/19(土)もきくりんが担当します!今回は小ネタになります。

WSLをTetatermで使う

、とても便利なのですが標準のコンソールの使い勝手があまり良くなく
(UI全般、ログが取れない、コピペしにくい等)
Teratermで使えたら便利だなあと思って検索していたのですが
どの記事もsshデーモンを有効にしてローカルホストにつないでいるものが多く
完全にこれになりました

SSH接続を行う手順をディスるつもりはないのですがSSHを有効にするのはポートを余計に開放することになるので気が引けます
またWSL2を使用する場合Winodwsと仮想レイヤーが同じになるため、ファイアウォールも別個管理となります。(→
)
ということでWSLのコンソール接続をTeratermのCygwin接続で拾おうかなと思います。

事前準備

・WSLのインストール※導入済みの人はスキップ
 
ファイル名を指定じて実行 appwiz.cpl

Windowsの機能の有効化または無効化→Linux用Windowsサブシステムの有効化

再起動

ファイル名を指定して実行 ms-windows-store:

windows storeからubuntuの入手


サインインは必須ではありません。


その場で起動するか

スタートメニューから起動します。

初回起動時はIntalling may take a few minutes...と表示されしばらく待ったあとユーザ名とパスワードを設定します。

・Teratermのインストール

-インストーラ(teraterm-4.105.exe)からインストール
※導入済みの人はスキップ、デフォルトから変更点がないので詳細は割愛

・以下ファイルの入手

wslbridge2_cygwin_x86_64.zip
※v0.7 コンパイル済み使用

wslbridgeとTeratermの設定

wslbridgeモジュールとTeratermディレクトリに以下のファイルを配置
TeratermインストールディレクトリはデフォルトのC:\Program Files (x86)\teraterm\とします。
wslbridgeはC:\dev\wslbridge2\に置きます。(どこでも良いです)

ファイル名 コピー元 コピー先
wslbridge2.exe wslbridge2_cygwin_x86_64.zipを解凍 C:\dev\wslbridge2\
wslbridge2-backend wslbridge2_cygwin_x86_64.zipを解凍 C:\dev\wslbridge2\
cygwin1.dll wslbridge2_cygwin_x86_64.zipを解凍 C:\Program Files (x86)\teraterm\
cygterm.exe C:\Program Files (x86)\teraterm\cygterm+-x86_64 C:\Program Files (x86)\teraterm\

cygterm.cfgの編集
前段作業で配置したモジュールを読み込ませるため
SHELL = auto を SHELL = "c:/dev/wslbridge2/wslbridge2.exe" -W~
に書き換えます。
"-W~"はコンソール起動時のカレントディレクトリの指定になります。
これを指定しないと/mnt/c/Program Files (x86)/teraterm/がカレントディレクトリの状態で端末が起動します。

cygterm.cfg
# CygTerm setting

TERM = ttermpro.exe %s %d /E /KR=UTF8 /KT=UTF8 /VTICON=CygTerm /nossh
# SJIS for Cygwin 1.5
# TERM = ttermpro.exe %s %d /E /KR=SJIS /KT=SJIS /VTICON=CygTerm /nossh
TERM_TYPE = vt100
PORT_START = 20000
PORT_RANGE = 40
SHELL = "c:/dev/wslbridge2/wslbridge2.exe" -W~
ENV_1 = MAKE_MODE=unix
ENV_2 = 
LOGIN_SHELL = Yes
# HOME_CHDIR = No
SSH_AGENT_PROXY = No
DEBUG = No

起動する

C:\Program Files (x86)\teraterm\cygterm.exe
から起動します。

Teratermが上がりbashコンソールが上がると思います。(一緒にあがってくるcygtermはバックエンドなので最小化しておいてください)
これで使いにくかったデフォルトのターミナルを使用しなくても快適なWSLライフが送れますね!!