1. 程式人生 > >vscode 通過 WIN10 ubuntu子系統(Bash On Windows)管理遠端主機

vscode 通過 WIN10 ubuntu子系統(Bash On Windows)管理遠端主機

1、啟用子系統功能

開啟控制面板—選擇程式,按下圖操作
這裡寫圖片描述

2、啟用安裝bash

按win鍵,輸入cmd,然後開啟cmd後,輸入bash 可見下圖。
一般會出現無法從windows應用商店進行下載。提示。
這裡寫圖片描述

3、劫持bash安裝源(步驟2正常下載,則本步驟可以忽略)

由於無法安裝,我們需要劫持windows下載源,利用Fiddler4。
大家需要兩樣東西:
1、Fiddler4
2、14.04.5.2-server-cloudimg-amd64-root.tar.gz

14.04.5.2-server-cloudimg-amd64-root.tar.gz

下載地址:

https://wsldownload.azureedge.net/14.04.5.2-server-cloudimg-amd64-root.tar.gz

劫持下載源步驟
開啟fiddler
這裡寫圖片描述

將下面的勾打上,我們將可以劫持https。由於fiddler劫持 https 的證書,所以https協議的控制器也可以歸我們所有了,由此可見,如果鏈路上出現了中間人,https也不一定安全。
這裡寫圖片描述

這裡寫圖片描述

替換的檔案需要事先下載好到本地。

劫持的地址為:EXACT:https://wsldownload.azureedge.net/14.04.5.3-server-cloudimg-amd64-root.tar.gz


這裡寫圖片描述

到此,windows下載源劫持就完成了。
接下來
按win鍵,輸入cmd,然後開啟cmd後,輸入bash 後,再輸入y即可完成安裝。

4、更換vscode的預設終端

開啟 vscode 進行選擇,檔案—-首選項—-設定 , 將出現一下介面
這裡寫圖片描述

修改紅框中的字串為:
"terminal.integrated.shell.windows": "C:\\Windows\\sysnative\\bash.exe"

此時在vscode上,按ctrl+`(鍵盤左上角,esc鍵下面的按鈕) 將會出現終端介面。
此時我們可以開啟windows上面的 子系統shell。

5、使用vscode替換好的bash終端,連線遠端終端。

ctrl+`執行終端後,在 /home/xxxxx/ 建立一個檔案run.sh,內容如下

#!/usr/bin/expect

set timeout 3
spawn ssh root@xxx.xxx.xxx.xxx
expect "*password*"
send "password\r"
send "sudo -s\r"
send "cd /home\r"
interact

加執行許可權:
chmod +x /home/xxxxx/run.sh

在子系統中的ubuntu上面需要安裝expect:
apt-get install expect

編輯 /home/xxxxx/.baserc, 在末尾加入登入執行命令:
expect /home/xxxxx/run.sh

一切就緒後,在vscode上面按ctrl+d,退出終端。
重新按ctrl+`進入終端即可登入遠端shell。

結果如下:
這裡寫圖片描述

6、更好的建議與問題

我們此處的第五步其實是懶人做法。
我們可以利用配置ssh金鑰,進行無密碼登入。

為什麼windows上面有shell還需要連線遠端shell?

因為我的習慣一直都在windows上面安裝一個虛擬機器,然後再在windows進行管理,但由於vscode無法直接呼叫我虛擬機器中的shell,所以只能藉助windows上面的shell進行連線。

大家也可以直接利用windows上面的shell進行開發。

參考文章:
http://www.cnblogs.com/VAllen/archive/2017/04/03/BashOnWindowsDownloadAndInstallError.html
http://www.cnblogs.com/zhenbianshu/p/5867440.html

感謝參考文章作者的奉獻!!