這篇文章為Remote Development擴展出現之前所應用的技術,在Remote Development擴展出現后,可直接使用擴展,詳情請參閱使用vscode進行遠程開發。
以下為舊文檔,僅作記錄。
使用vscode訪問和修改遠程文件,分三步實現:在遠程linux機器上安裝rmate;在本地windows上安裝openssh;在vscode中安裝擴展remote vscode。
1、 在遠程linux機器上安裝rmate
rmate有很多中語言版本,這里用的是python的版本。github地址:https://github.com/sclukey/rmate-python
下載安裝比較簡單,在linux中執行以下命令即可
wget https://raw.githubusercontent.com/sclukey/rmate-python/master/bin/rmate chmod +x ./rmate mv ./rmate /usr/local/bin/rmate
2、在本地window中安裝openssh
github地址:https://github.com/openssl/openssl/blob/master/INSTALL
這個是需要自己編譯的,推薦直接利用window版的安裝包:https://www.mls-software.com/opensshd.html
推薦使用exe版本。如果下載的是免安裝的版本,需要在windows設置一下環境變量,到解壓后的bin目錄。安裝完成運行ssh命令會有以下提示:
可以直接運行 ssh-keygen -t rsa 命令生成密鑰對,一般默認的文件夾會在當前用戶目錄下的.ssh文件夾中。在windows的命令行中實現對遠程linux的免密碼登錄,和在linux系統中的方式是一樣的,將windows中生成的公鑰id_rsa.pub文件追加到所用的linux登錄用戶的.ssh目錄中的authorized_key文件中即可。
要使authorized_key生效,需要需要對sshd_config文件進行修改,主要是以下三項,取消注釋即可
vim
/etc/ssh/sshd_config
RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys
之后,執行 service sshd restart 命令重啟sshd服務
service sshd restart
# 之后
cat id_rsa.pub >> authorized_keys
# 注意文件的路徑
注意的是,如果使用的linux登錄用戶不是root用戶,需要修改以下.ssh文件夾以及authorized_key文件的權限,否則是無法實現免密碼登錄的
chmod 700 .ssh cd .ssh/ chmod 600 authorized_keys
3、安裝remote vscode擴展
擴展地址:https://marketplace.visualstudio.com/items?itemName=rafaelmaiolla.remote-vscode
安裝完成后,面板中點擊Start Server,啟動服務(這一步是必須的)
之后打開終端(【查看】——【集成終端】),輸入以下命令:
# 例子
ssh -R 52698:127.0.0.1:52698 learn@192.168.1.215
ssh -R 52698:127.0.0.1:52698 learn@192.168.1.215 -p 2159
# 上面2159為端口號,只是例子,ssh默認通過22端口訪問遠程主機,出現這種情況可能是更改了端口,也可能是存在端口的轉發。
# 之后
rmate -p 52698 linux中的文件名稱
結果會打開相應的文件:
之后可以直接進行修改了。
此外,如需設置擴展自動啟動,只需點一下【工作區設置】,這樣會自動添加setting.json文件
在文件中進行如下設置即可。
最后,如果開啟了防火牆,需要把所用到的52698端口打開。