一、什麼是 SSH (Secure Shell Protcol) ?

先簡單介紹一下,當我們需要遠端連線到另一台電腦時,Windows 常見的使用方式為 Remote Desktop Connection(遠端連線工具),此為透過 GUI 介面去操作;而 SSH 以及 Telnet 則是透過 Command Line 的方式建立連線。

而 SSH 與 Telnet 的差別在於,SSH 的連線通道是使用 public-key cryptography 來為資料流加密

SSH 本身是一個協定,而目前支援此協定的常見工具有 OpenSSH 以及 PuTTY


二、使用情境

因工作室目前使用 WordPress 架站,若想修改底層的內容,必須從本機開啟 VSCode 連線至遠端 Server 進行修改。


三、產生 SSH Key

  • 透過 Command Line 下指令 ssh-keygen 來產生 SSH Key,可設定產生位置以及 passphrase。

    設定完成後,至 ~/.ssh 底下會看到公鑰 (id_rsa.pub) 以及私鑰 (id_rsa),而通常公鑰是給外部系統用,而私鑰則是自己用,雙方才能夠溝通。


四、將公鑰放置到遠端 server

(1) 當 server 架在 GCP 上

  • 進入 GCP,選擇選單上的 Compute Engine / 中繼資料

  • 點選安全殼層金鑰

  • 點選編輯 > 新增項目,將剛剛產生的公鑰內容貼上並儲存

(2) 於 VSCode 上安裝 Remote Development 套件

  • 選擇左側選單的 Extensions,搜尋 Remote Development 並安裝

(3) 建立遠端連線

  • 點選畫面左下角 Open a remote window

  • 選擇 Remote-SSH: Connect to Host…
  • 輸入要連線的伺服器,格式 username@server_host
    • username : 使用者名稱
    • server_host : 外部 IP

參考資料

[教學] 產生SSH Key並且透過KEY進行免密碼登入
[教學] 使用 Visual Studio Code 透過 SSH 進行遠端程式開發