# remote vscode via ssh ## 第一步_安裝VScode 本地端和伺服端皆須安裝vscode ### 本地端 若使用windows,powershell自帶ssh,可以直接使用 安裝Remote - SSH 以及Code Runner插件   ### 伺服端 安裝VScode和SSH即可 以linux為例 ```bash= sudo apt install code ``` 並確定你能透過本地以username@server_host的方式進行SSH連接 ## 第二步_設定VSCode ### 本地端 >本地vscode的設定 設定>延伸模組>Remote-SSH 中將Remote.SSH: Show Login Terminal 打開  ## 第三步_開始連接到伺服端 回到主畫面按下F1,並輸入Remote,找到Remote-SSH: Connect to host   輸入你平常ssh到的主機指令  windows下選擇第一個   選擇並連接到遠端主機  會跳出一個新的VScode視窗,選擇你的伺服端系統  要求你輸入密碼(SSH登入密碼)  連線成功  接下來按開啟資料夾,選擇你平常存放code的地方,選擇好按確定  會要求輸入密碼跟信任資料夾,輸入完就可以存取伺服端資料夾內的程式碼了  如果出現這個,只要重新選擇python 直譯器的位置並重啟vscode即可  ## 第四步_建立密鑰 到這裡之後,你應該會發現,開啟跟連線都需要輸入密碼,似乎一點都沒有方便到 這是因為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是公鑰,我們要放到遠端主機上  接下來複製你的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執行關機)  ```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
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up