Deployment
GitLab CI 無法連接到遠端伺服器
我有以下
.gitlab-ci.yml
文件,旨在通過將我的主 GitLab 儲存庫複製到test
特定伺服器上的目錄來部署它。image: ubuntu:latest before_script: - apt-get install -y - apt-get update -y - 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y && apt-get install git -y )' - eval $(ssh-agent -s) - echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add - > /dev/null ## /dev/null = trou noir - mkdir -p ~/.ssh - chmod 700 ~/.ssh - ssh-keyscan charrier.alwaysdata.net >> ~/.ssh/known_hosts - chmod 644 ~/.ssh/known_hosts - '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config' deploy: script: - ssh -o StrictHostKeyChecking=no -vT user_name@xxx.xx.xxx.xxx "cd test && git clone git@gitlab-myweb.com:repo_group/repo.git" only: - master
這是在登錄時生成的
$SSH_PRIVATE_KEY
私鑰,我正在嘗試複製我的儲存庫。user_name``xxx.xx.xxx.xxx
執行時
ci
,我收到此錯誤:user_name@xxx.xx.xxx.xxx: Permission denied (publickey). ERROR: Job failed: exit code 1
我顯然搞砸了
ssh
,但我很困惑到底是我的問題。我鬆散地遵循本指南。你能幫我找出我的錯誤嗎?
原因是因為我沒有做兩件事:
- 將伺服器的公鑰添加到伺服器的授權密鑰中。在伺服器內部,只需執行以下程式碼即可完成:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
- 我沒有將伺服器的公鑰添加到
GitLab
配置文件的公鑰中。這是通過複製內容cat ~/.ssh/id_rsa.pub
並將其粘貼到https://yourgitlabwebsite.com/profile/keys