使用 Cmder 直入 WSL

因為工作有 SSH 連線到遠端機器操作的習慣,在換了 Surface Book 21 之後,也還是想要儘量保持這個習慣,一般來說我都是使用 PieTTY2 在進行 SSH 連線,不過對於行動裝置我通常會再搭配上 Mosh3 使用,可惜在 Windows 上面沒有原生的 Client 支援,於是我打算在 WSL4 裡面安裝 Mosh 來使用!

初始規劃

原本我是在找尋可用的 Mosh client,發現 MobaXterm 有支援 mosh,不過試用了一下之後發現他對於鍵盤的 ASCII Keycode 支援沒有很好,一些按鍵是送不出去的,於是就放棄了,打算改轉我在桌機上面的做法——開 Linux 虛擬機再用 PieTTY 連線進入。

不過虛擬機這個念頭很快就被 WSL 取代了(我 Hyper-V 都打開準備要裝系統了XD),因為筆電還是會想要以電量為優先考量,如果裝 VM 的話,電池很快就不夠力了……

於是這邊有兩個想法:

  1. 在 WSL 裡面啓用 SSH Server,用 PieTTY 搭配自動登入5來作為 mosh 的執行器
  2. 找一個 PieTTY 的替代品直接接入 WSL Shell 來執行 mosh

由於 WSL 的 lifecycle 只會到所有 shell 關閉就結束,所以如果要用方案 1 的話還必須在 Windows 裡面建立一個 service 來掛著 WSL sshd 的 Deamon(怎麼有種 Docker 的感覺XD),有點小麻煩,雖然我很喜歡,因為 PieTTY 已經用習慣了,其實我沒有很想換 Terminal…… 如果之後用的不順再來研究這個方法XD

使用 Cmder

不過介於我懶惰設定的關係,所以我姑且選擇了方案 2,我找了一個 Windows Terminal Emulator —— Cmder6,他其實是把 ConEmu7 做了一些包裝,使用起來還算是上手,設定一下快捷鍵之後覺得應該還能接受

不過設定 WSL 的地方就需要照著說明來做了,原先我以為進去 cmder 之後,下 ubuntu 啓用 WSL 就完美了,結果在我 ssh/mosh 到遠端機器的時候發現 256 color 的設定不見了,整個顏色都變得很奇怪。

查了一下資料之後發現好像需要 wslbridge 來幫忙轉換一些畫面繪製的指令,這部份其實也不需要自己安裝額外的東西,cmder 包裝的 ConEmu 版本夠新,需要的元件其實本來就有包含了,我們只需要自己加上 Task config。

依照這篇的說明,首先建立一個 Task(名稱隨便取,像我就使用 wsl::bridge),在指令的部分填上如下內容:

set "PATH=%ConEmuBaseDirShort%\wsl;%PATH%" & %ConEmuBaseDirShort%\conemu-cyg-64.exe --wsl -cur_console:pnm:/mnt -t bash -l

然後在 cmder 建立新 Tab 的時候選擇這個 task,就可以得到一個有 256color support 的 Terminal 了!

看看全彩的 lolcat 就覺得……好空虛XDDD

預設進入 mosh

如果想要預設建立某個 mosh 連線的話,也可以複製剛剛的 Task,並在後面加上:

-c "mosh [email protected]"

讓 bash 會自動執行 mosh 之後離開。

因主題更新,留言功能暫時停用中。