尝试从 gitlab runner 进行 SSH 部署服务器时权限被拒绝

尝试从 gitlab runner 进行 SSH 部署服务器时权限被拒绝

我正在尝试使用此管道将 gitlab 存储库部署到 gitlab ci 管道中的服务器

stages:
  - deploy

deploy:
  stage: deploy
  only: 
    - main
  before_script:
    - apk add --update --no-cache openssh
    - install -m 600 -D /dev/null ~/.ssh/id_rsa
    - echo "$SSH_PRIVATE_KEY" | base64 -d > ~/.ssh/id_rsa
    - cat ~/.ssh/id_rsa
    - ssh-keyscan -H $SSH_HOST > ~/.ssh/known_hosts
    - echo $SSH_USER
    - echo $SSH_HOST
  script:
    - ssh $SSH_USER@$SSH_HOST "cd $WORK_DIR && git checkout $MAIN_BRANCH && git pull && exit"
  after_script:
    - rm -rf ~/.ssh

变量名称保存预期的数据,并且在执行后我已经调试了存储在该运行程序中的私钥,before_script看起来与我尝试连接的机器上的私钥相同,并且所有其他变量都有正确的值。

但是当我运行这个管道时,我在尝试 ssh 到部署服务器时收到这些错误

Permission denied, please try again.
Permission denied, please try again.
SSH_USER@SSH_HOST : Permission denied (publickey,password).

(为了更好地理解,用户和主机的值被替换为变量名称)。

奇怪的是,我可以在没有密码的情况下从我的计算机上 ssh 到该服务器,没有任何问题。

我应该补充一点,docker gitlab runner 上的操作系统是Alpine,部署服务器上的操作系统是Debian 11

有谁知道为什么我的部署服务器无法使用正确的私钥识别此 SSH 登录?

相关内容