透過 SSH 遠端 GCP Linux 終端機

Secure SHell Protocol (安全殼層協定) 是一種透過加密封包傳輸到網路上的技術, 用以提供較安全的遠端連線模式. 但是, SSH 只能遠端操作文字介面的終端機, 若要操作圖形介面還得依靠其他連線技術, 如: Xdmcp. 因此, SSH 常用來遠端連線 linux, unix-like, …等非圖形作業系統的主機.

本文涵蓋兩個主題:

  1. 簡單介紹 SSH 連線機制
  2. 使用 Xshell 6 工具連線至 GCP linux 機器

SSH 連線機制

常見的加密技術是透過兩把不一樣的 Public Key (公鑰) 與 Private Key (私鑰) 進行資料的加密與解密. 在同一個方向的傳輸中, 需要這兩把鑰匙進行加解密, 所以這兩把鑰匙必須是成對的.

舉例來說, A -> B 的訊息傳輸使用一對公/私鑰, B 握有私鑰不能外流, 並且 B 提供 A 公鑰用來加密封包. A 發送訊息前使用公鑰加密封包, 待 B 收到完整封包後以私鑰解密出原始資料內容. 但是, 由於網路上的溝通是雙向的, 所以雙方都需要持有對方的公鑰以及自己的私鑰.

PS. 加密的技術有很多種, 速度與安全性各有優劣. 目前 SSH 主要是使用 RSA/DSA 兩種加密演算法, 而 SSH version 2 能使用更多加密技術.

PS. 如果對各種遠端技術有興趣可以去看鳥哥大大的文章, 非常詳細介紹.

Xshell 6 連線至 GCP linux 機器

Xshell 可以在 windows 平台下訪問遠端伺服器, 當然也有人用 Putty 這個小巧幫變得 SSH 遠端連線程式. 然而 Xshell 有更多管理層面的功能, 頁籤功能, 管理連線/分類, 支持 SSH1, SSH2, SFTP, …等協議的連線, 算是相當實用.

一直以來都是在 windows 工作環境中, 所以選用 Xshell 6 示範建立 SSH 連線至 GCP linux 機器.

首先必須創建金鑰 (公/私鑰)

打開 Xshell 6 > 功能列(工具) > 使用者金鑰管理

產生金鑰 (RSA-2048)

長度選擇 2048, 1024 目前已經很容易被破解.

下一步, 等待產生出金鑰

設定使用者金鑰名稱/加密密碼

以金鑰名稱代表該組金鑰, 這邊先記著待會在 GCP 金鑰設定會用到

產生公鑰 (Public Key)

產生的公鑰必須在遠端伺服器的 SSH 服務上註冊, 這樣一來遠端伺服器便能使用該公鑰加密封包了.

注意 RSA 公鑰的結尾是 “=="

GCP 添加金鑰

GCP Console > Compute Engine > 中繼資料 > 安全殼層金鑰
貼上公鑰後, 於結尾 “==" 加上 “[空格][使用者金鑰名稱]"

Xshell 6 建立連線工作階段

檔案 > 新增

名稱: [工作階段名稱]
通訊協定選擇 SSH
連接埠輸入 22
主機輸入 [遠端伺服器 IP]

設定使用者驗證方法

方法選擇 Public Key
使用者名稱輸入 [遠端伺服器的使用者名稱]
使用者金鑰選擇 [使用者金鑰名稱]
複雜密碼 [使用者複雜密碼]

PS. 如果[遠端伺服器的使用者名稱]與[使用者金鑰名稱]不同的話會在跳出視窗, 告知使用者名稱與金鑰在遠端伺服器尚未登陸

最後一步, 連線!

可以看到 Xshell 提供分頁功能, 方便切換工作視窗.

開始工作囉~!

發表留言