使用 SSH 遠端連線 VPS (Google GCP)

產生 ssh 公私鑰

開啟本地終端機輸入指令

1
ssh-keygen -t rsa -C '[email address]'

將會詢問你需不需要為金鑰命名,如果不設定 enter 跳過即可(預設以 id_rsa 命名),若未來要產生其他組 ssh key,這裡就需要命名了

1
Enter file in which to save the key

詢問是否需要設定密碼,如果不設定 enter 跳過即可:

1
Enter passphrase (empty for mo passphrase)

查看金鑰位置

進入金鑰所在位置 .ssh 資料夾

1
cd ~/.ssh

輸入 ls 指令,預期會看到兩個檔案(公私鑰)

1
2
id_rsa(私鑰)
id_rsa.pub(公鑰)

查看金鑰內容

1
2
cat id_rsa
cat id_rsa.pub

將公鑰保存在要連線的伺服器中

macOS 複製公鑰指令

1
pbcopy < ~/.ssh/id_rsa.pub

或是終端機輸入後手動複製

1
cat ~/.ssh/id_rsa.pub

GCP 連線

  1. 開啟 GCP 網站點擊 VM執行個體 選單
  2. 點擊連結 ssh 下拉選單
  3. 點擊在瀏覽器視窗中開啟,開啟 VPS 終端介面
  4. 將公鑰貼至 authorized_keys 檔案(public_key_string 要換成剛剛複製的公鑰字串)

在 authorized_keys 檔案中寫入 “public_key_string” 字串,如果檔案已存在,且已有以前寫入的公鑰,會換行寫入新的公鑰。

1
echo "public_key_string" >> ~/.ssh/authorized_keys

假如剛剛自己是建立一個新的檔案,因為安全性的關係要改變 permission

輸入以下兩個指令 (username 需要換成自己的帳號)

1
2
chmod -R go= ~/.ssh
chown -R username:username ~/.ssh

回到本地端,試試看是否能正常登入使用 ssh key 遠端登入 GCP

1
ssh 帳號@伺服器ip

補充:ssh 帳號@IP 預設是使用 id_rsa 這組金鑰,若有多組金鑰要額外輸入金鑰檔名

1
ssh -i ~/.ssh/私鑰名稱 帳號@伺服器ip

本機端查看 ssh 已連線的選端伺服器清單(hosts)

1
cat ~/.ssh/known_hosts

References