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

![キャプチャ.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/409537/19bac1fa-baa1-a6ef-77c5-43ec27300995.jpeg)

**[ALHアドベントカレンダー2020](https://qiita.com/advent-calendar/2020/alhinc)** 
12/19(土)もきくりんが担当します！今回は小ネタになります。

# WSLをTetatermで使う
![WSL(Windows Subsystem for Linux)](https://www.buildinsider.net/enterprise/wsl/01)、とても便利なのですが標準のコンソールの使い勝手があまり良くなく
(UI全般、ログが取れない、コピペしにくい等)
Teratermで使えたら便利だなあと思って検索していたのですが
どの記事もsshデーモンを有効にしてローカルホストにつないでいるものが多く
完全にこれになりました
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/409537/7e4c06b4-f87e-22d2-1a2e-11ba3910178e.png)
![違うそうじゃない - Google 画像検索](https://www.google.com/search?q=%E9%81%95%E3%81%86%E3%81%9D%E3%81%86%E3%81%98%E3%82%83%E3%81%AA%E3%81%84&hl=ja&sxsrf=ALeKk00vzI4Nq3HVXyYcq7PH1KgZb2BEdw:1608456886595&source=lnms&tbm=isch&sa=X&ved=2ahUKEwiXnvLqoNztAhXVP3AKHbpaBK0Q_AUoAXoECAkQAw&biw=2560&bih=1298)

SSH接続を行う手順をディスるつもりはないのですがSSHを有効にするのはポートを余計に開放することになるので気が引けます
またWSL2を使用する場合Winodwsと仮想レイヤーが同じになるため、ファイアウォールも別個管理となります。(→![入れ子になった仮想化](https://docs.microsoft.com/ja-jp/virtualization/hyper-v-on-windows/user-guide/nested-virtualization))
ということでWSLのコンソール接続をTeratermのCygwin接続で拾おうかなと思います。

![GitHub - Biswa96/wslbridge2: Explore various ways to connect Windows Subsystem for Linux with Windows terminal emulators.](https://github.com/Biswa96/wslbridge2)




##事前準備

・WSLのインストール※導入済みの人はスキップ
　
ファイル名を指定じて実行 ```appwiz.cpl```
![01.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/409537/97ea4dfd-2a4d-705a-672d-22dea51f14fe.png)
Windowsの機能の有効化または無効化→Linux用Windowsサブシステムの有効化
![03.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/409537/f446aa64-921a-e6b1-558b-81ddf708a378.png)
再起動
![04.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/409537/50b614bf-c189-f457-a368-7662cde6ca8c.png)
ファイル名を指定して実行 ```ms-windows-store:```
![WS000000.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/409537/61579df6-dcbd-8e1b-add8-70a9cd5e4f38.jpeg)
windows storeからubuntuの入手
![WS000004.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/409537/b6b31ff3-5410-78a0-0e13-6c8f1f3eb3be.jpeg)
![WS000006.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/409537/9c57b173-a310-62dc-576a-a7820124919b.jpeg)
サインインは必須ではありません。
![WS000007.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/409537/26248c10-4599-b905-d97c-783e2798ff59.jpeg)
![WS000008.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/409537/0af12c97-31ac-a7c3-95fe-6fa4df7f10fe.jpeg)
その場で起動するか
![WS000010.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/409537/b199b2c1-2396-0972-478f-d2efd650b4c6.jpeg)
スタートメニューから起動します。
![11.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/409537/ed56530a-6b77-f77c-bbfe-439af9ec5e9a.png)
初回起動時は```Intalling may take a few minutes...```と表示されしばらく待ったあとユーザ名とパスワードを設定します。
![WS000012.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/409537/ad997446-fd3d-2225-8b44-7f27894625f6.jpeg)

・Teratermのインストール
![Tera Term - OSDN](https://ja.osdn.net/projects/ttssh2/releases/)
-インストーラ(teraterm-4.105.exe)からインストール
※導入済みの人はスキップ、デフォルトから変更点がないので詳細は割愛

・以下ファイルの入手
![Releases · Biswa96/wslbridge2 · GitHub](https://github.com/Biswa96/wslbridge2/releases)
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:\develop\wslbridge\ |
|wslbridge2-backend | wslbridge2_cygwin_x86_64.zipを解凍 | C:\develop\wslbridge\ |
|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:/develop/wslbridge/wslbridge2.exe" -W~**
に書き換えます。
"-W~"はコンソール起動時のカレントディレクトリの指定になります。
これを指定しないと/mnt/c/Program Files (x86)/teraterm/がカレントディレクトリの状態で端末が起動します。

```bat: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:/develop/wslbridge/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```
から起動します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/409537/ea2b38af-93f1-1f47-faa1-f9ac95a7abb7.png)
Teratermが上がりbashコンソールが上がると思います。(一緒にあがってくるcygtermはバックエンドなので最小化しておいてください)
これで使いにくかったデフォルトのターミナルを使用しなくても快適なWSLライフが送れますね！！