SSH to Digital Ocean
生成公私鑰匙
- 在本機生成一組公私鑰匙,執行 ssh-keygen。
 - 複製公鑰內容。
 - ssh 連線服務器。
 - 將生公鑰內容貼上至 .ssh/authorized_keys。
 
生成公私鑰匙

服務器貼上

設定 Gitlab 環境變數
- 登入 Gitlab。
 - 左側導航欄點擊 Settings > CI/CD。
 - 在中央操作區點擊 Variables 的 Collapse 點擊 Add Variable。
 - 依序添加三個環境變數 DEV_SERVER_PRIVATE_KEY,DEV_SERVER_URL,DEV_SERVER_USER。
 

編寫 gitlab-ci.yml
建立一個 stage 叫做 deploy,這個 stage 執行 ssh 連線到服務器。
- gitlab-runner 環境啟用 ssh 服務,eval $(ssh-agent -s)。
 - 將環境變數 DEV_SERVER_PRIVATE_KEY 內容注入 ssh-agent,ssh-add <(echo "$DEV_SERVER_PRIVATE_KEY")。
 - ssh 連線服務器,-o StrictHostKeyChecking=no 跳過 ssh 第一次連線出現的提示,避免 gitlab-runner 卡住。
 
deploy_to_dev:
  stage: deploy
  tags:
    - do
  before_script:
    - eval $(ssh-agent -s)
    - ssh-add <(echo "$DEV_SERVER_PRIVATE_KEY")
  script:
    - ssh -o StrictHostKeyChecking=no $DEV_SERVER_USER@$DEV_SERVER_URL "ls -al"