---
# System prepended metadata

title: remote vscode via ssh

---

#    remote vscode via ssh

##    第一步_安裝VScode
本地端和伺服端皆須安裝vscode
###    本地端
若使用windows,powershell自帶ssh,可以直接使用
安裝Remote - SSH 以及Code Runner插件
![](https://i.imgur.com/CzwTGVK.png)

![](https://i.imgur.com/ed5diDo.png)

###    伺服端
安裝VScode和SSH即可
以linux為例
```bash=
sudo apt install code
```
並確定你能透過本地以username@server_host的方式進行SSH連接


##    第二步_設定VSCode
###    本地端
>本地vscode的設定 

設定>延伸模組>Remote-SSH 中將Remote.SSH: Show Login Terminal 打開
![](https://i.imgur.com/aMrR2nm.png)

##    第三步_開始連接到伺服端
回到主畫面按下F1,並輸入Remote,找到Remote-SSH: Connect to host
![](https://i.imgur.com/BOUXn8r.png)
![](https://i.imgur.com/rGswpcM.png)
輸入你平常ssh到的主機指令
![](https://i.imgur.com/VIiPgYX.png)
windows下選擇第一個
![](https://i.imgur.com/NkrEosP.png)
![](https://i.imgur.com/NcvSIgr.png)
選擇並連接到遠端主機
![](https://i.imgur.com/feWmzL8.png)
會跳出一個新的VScode視窗，選擇你的伺服端系統
![](https://i.imgur.com/hVOSw28.png)
要求你輸入密碼(SSH登入密碼)
![](https://i.imgur.com/dUC94Sg.png)
連線成功
![](https://i.imgur.com/gmLutt1.png)
接下來按開啟資料夾，選擇你平常存放code的地方，選擇好按確定
![](https://i.imgur.com/30NJ5W0.png)
會要求輸入密碼跟信任資料夾，輸入完就可以存取伺服端資料夾內的程式碼了
![](https://i.imgur.com/RNCMeGx.png)
如果出現這個，只要重新選擇python 直譯器的位置並重啟vscode即可
![](https://i.imgur.com/sO2eT6V.png)
##    第四步_建立密鑰
到這裡之後，你應該會發現，開啟跟連線都需要輸入密碼，似乎一點都沒有方便到
這是因為SSH登入時都需要用pubkey或是密碼來連線
所以我們就需要讓伺服端認識我們本地端的pubkey
所以先在本地端打開一個終端機，輸入
```bash=
ssh-keygen -t rsa -b 4096
```
輸出的一路按Enter就好，會產生這樣
```bash=
PS C:\Users\皓哲> ssh-keygen -t rsa -b 4096
Generating public/private rsa key pair.
Enter file in which to save the key (C:\Users\皓哲/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in C:\Users\皓哲/.ssh/id_rsa
Your public key has been saved in C:\Users\皓哲/.ssh/id_rsa.pub
The key fingerprint is:
```
完成後會出現一堆檔案
id_rsa是你的私鑰，絕對不能被竊取
id_rsa.pub是公鑰，我們要放到遠端主機上
![](https://i.imgur.com/U0ChOlb.png)
接下來複製你的id_rsa.pub路徑，打開一個command line,並輸入這個指令
```bash=
PS> scp "C:\Users\你的使用者名稱\.ssh\id_rsa.pub" server_host:~/自訂名稱_id_rsa.pub
```
會把你的pubkey送到遠端主機去
接下來在SSH裡面輸入
```bash=
pi@cheesepi:~/Desktop $ cat ~/自訂名稱_id_rsa.pub >> ~/.ssh/authorized_keys
pi@cheesepi:~/Desktop $ chmod -R go= ~/.ssh
pi@cheesepi:~/Desktop $ chown -R pi:pi ~/.ssh
```
完成後，你就可以像在本地端一樣開發伺服端的程式了
也僅需按下VSCode就會自動連結上伺服端(在SSH能正常執行的狀況下)
關閉VSCode後也會自動斷開SSH(仍須自行透過SSH執行關機)
![](https://i.imgur.com/37MoiG2.png)
```bash=
pi@cheesepi:~/$ sudo shutdown
```

###    參考資料

https://code.visualstudio.com/docs/remote/ssh-tutorial
https://xenby.com/b/220-%E6%95%99%E5%AD%B8-%E7%94%A2%E7%94%9Fssh-key%E4%B8%A6%E4%B8%94%E9%80%8F%E9%81%8Ekey%E9%80%B2%E8%A1%8C%E5%85%8D%E5%AF%86%E7%A2%BC%E7%99%BB%E5%85%A5
https://www.itread01.com/content/1550658067.html
https://hackmd.io/@brick9450/vscode-remote#%E8%A8%AD%E5%AE%9A

