iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 27
4

畢竟是雲端服務,不像自己的電腦打開就能進行開發。
把服務部署到雲端上,需要先透過SSH連線到伺服器。

以下是個人經驗中,3種連線方式進 GCP instance的方法。

方法1:從GCP產品頁面上的SSH連結按鈕

GCP已經有個服務,點選右上角的ssh按鈕點選就進VM。

或是點選gcloud 指令列,會提供以下連線指令,在本地端的Terminal輸入就依據後續要求進行操作。
gcloud beta compute ssh --zone "伺服器的位置" "instance名稱" --project "自訂的專案名稱-編號"

方法2:ssh -i

1.先在本機端建立ssh key

ssh-keygen -t rsa -f ~/.ssh/[KEY_FILENAME] -C [USERNAME]

ssh-keygen -t rsa -f ~/.ssh/gcpn01 -C gcpn01
會要求輸入密碼

2.複製公鑰

//cat [KEY_FILENAME].pub

公私鑰都在SSH裡頭 cd ~/.ssh
複製公鑰 cat gcpn01.pub
貼到 GCE產品頁面中 -> VM 執行個體詳細資料 -> SSH金鑰項目
https://ithelp.ithome.com.tw/upload/images/20201011/20125263DQcE4z8TxY.png

3. ssh -i 連線到 gcp vm 外部ip

ssh -i path-to-private-key username@external-ip

需先到SSH資料夾內 cd ~/.ssh
連線指令 ssh -i gcpn01 gcpa01@104.19.17.13 會要求輸入建立ssh key時所設定的密碼

但每次連線都要進SSH資料夾,輸入一堆設定檔太過於複雜,所以更優的作法是用方法3

方法3:ssh alias

修改 ssh config

vim ~/.ssh/config

Host gcpApache01            //自訂alias
HostName   14.19.17.13  //ip
Port 22                     //host SSH port
IdentitiesOnly yes          //指定key   
IdentityFile ~/.ssh/gcpa01  // 指定pub key 路徑
User gcpa01                 //登入username,

直接連線Host alias-name

ssh gcpApache01

一樣輸入建立ssh key時所設定的密碼,就能順利連上GCP。


參考資料
https://www.youtube.com/watch?v=2ibBF9YqveY
https://stackoverflow.com/questions/59283827/not-to-create-a-new-user-
https://cloud.google.com/compute/docs/instances/adding-removing-ssh-keys#sshkeyformat
http://www.kchuhai.com/report/view-6059.html
https://code.yidas.com/ssh-config/
https://medium.com/%E6%B5%A6%E5%B3%B6%E5%A4%AA%E9%83%8E%E7%9A%84%E6%B0%B4%E6%97%8F%E7%BC%B8/how-to-setup-ssh-config-%E4%BD%BF%E7%94%A8-ssh-%E8%A8%AD%E5%AE%9A%E6%AA%94-74ad46f99818
https://www.youtube.com/watch?v=TGSr2voyvKU
https://unix.stackexchange.com/questions/61655/multiple-similar-entries-in-ssh-config


上一篇
GCE遠端同步與部署專案
下一篇
遠端連線 GCE 的 MySQL 資料庫
系列文
30天開發與部署 Laravel 專案30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 則留言

1
@x0mg
iT邦新手 5 級 ‧ 2020-10-12 01:01:25

我有試過方法二的第三點:
只有第一次需要使用ssh -i path-to-private-key username@external-ip。接下來只要ssh username@external-ip,就可以直接連線,連密碼都不用輸入XD

kiddchan iT邦新手 5 級 ‧ 2020-10-12 15:22:13 檢舉

是連線到GCP上嗎?

還是你那個username帳號權限太大 ?!

0
Ho.Chun
iT邦新手 5 級 ‧ 2021-05-24 17:27:18

ssh alias 還有這招!! /images/emoticon/emoticon41.gif

我要留言

立即登入留言