我平時都是用 VSC 連到本地 WSL2 來撰寫程式碼,這樣一來想玩遊戲就玩,想開 Terminal 敲指令就敲,省得額外安裝一套系統做切換真的是蠻方便的。
(但是踩過坑 ㄏ)
過去想要在另一台主機上寫程式的話,我都是把程式碼丟到 Github 上的私人 Repo,再抓到另一台主機上接續著寫。
隨著寫的程式碼越來越多,最近發現有些程式碼,若是處於測試中或是半成品不想丟 Github 又想轉移戰地的話,遠端會是個比較方便的做法。
在 VSC 中,若想要連接本地 WSL,先安裝 WSL 套件,再點擊左下角的 後,選擇「連線至 WSL」即可。
當然,得要有安裝 Windows Subsystem for Linux (WSL) 才行。
若是想要連線至遠端 WSL,就要透過另一個套件:
在開始遠端連線之前,由於鏡像模式需要 WSL2 2.0 以上,需要先設定點東西:
%UserProfile%/.wslconfig
,將以下 code 存成 bat 檔案後執行:或是自行在 %UserProfile%
建立一個 .wslconfig
檔案:
詳細請參考 https://learn.microsoft.com/zh-tw/windows/wsl/wsl-config
做完上面的工作後,就可以點擊 ,選擇「連線到主機」,再選擇「新增主機」,VSC 會要求你輸入 ssh hello@microsoft.com -A
格式的登入資料。
這邊的意思其實就是:
ssh <遠端使用者名稱>@<遠端裝置名稱> 或 <遠端主機 IP>
Windows 裝置名稱在設定 > 系統 > 關於
可以找到
IP 若是兩台在同個區網可以填虛擬 IP
接下來 VS Code 會要求輸入遠端機的密碼(如果有),若是資料正確就可以正常登入囉~
但連上去時還只是在遠端機的 Windows 系統,再點擊一次 選擇「連線至 WSL」,若有請求密碼就再次輸入即可。
每次登入都要輸入密碼實在是太麻煩了,有沒有什麼方法可以解決呢?
有的,可以透過在本地機生成公私鑰,將公鑰加入至遠端機的 authorized_keys
裡,實現金鑰登入。
.pub
的是公鑰,而沒有附檔名的是私鑰,記得保管好。authorized_keys
檔案裡。題外話, sftp 也可以傳送檔案到遠端機,格式則跟前面的 ssh 指令一樣;
但要小心,是否會蓋過遠端機資料。
傳送格式:
詳細請參考 https://learn.microsoft.com/zh-tw/windows-server/administration/openssh/openssh_keymanagement
如此一來,以後登入就不用再繁瑣的重複輸入密碼囉。