GitLab CI/CD+Ansible部署Ubuntu服务器时SSH连接失败求助
GitLab CI/CD 结合 Ansible 部署连接失败问题
已配置的 gitlab-ci.yml
before_script: - ansible --version - mkdir secret - echo "$ANSIBLE_SSH_KEY" > secret/ansible.key ## import ansible ssh key - chmod 400 secret/ansible.key - export ANSIBLE_HOST_KEY_CHECKING=False . . . script: - cat $APP_ENV_FILE_DEV > .env - ansible-playbook -i $DEV_INVENTORY --private-key secret/ansible.key -vvv ./ansible/playbooks/deploy.yml
执行时的错误日志
<[MASKED]> ESTABLISH SSH CONNECTION FOR USER: [MASKED] 56<[MASKED]> SSH: EXEC ssh -C -o ControlMaster=auto -o ControlPersist=60s -o StrictHostKeyChecking=no -o 'IdentityFile="/home/gitlab-runner/builds/z9W8_2sz/0/osint4224931/Telegram-parser/secret/ansible.key"' -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o 'User="[MASKED]"' -o ConnectTimeout=10 -o ControlPath=/home/gitlab-runner/.ansible/cp/49d20e7fab [MASKED] '/bin/sh -c '"'"'echo ~[MASKED] && sleep 0'"'"'' 57<[MASKED]> (255, b'', b'Load key "/home/gitlab-runner/builds/z9W8_2sz/0/osint4224931/Telegram-parser/secret/ansible.key": error in libcrypto\r\n[MASKED]@[MASKED]: Permission denied (publickey).\r\n') 58fatal: [[MASKED]]: UNREACHABLE! => { 59 "changed": false, 60 "msg": "Failed to connect to the host via ssh: Load key \"/home/gitlab-runner/builds/z9W8_2sz/0/osint4224931/Telegram-parser/secret/ansible.key\": error in libcrypto\r\n[MASKED]@[MASKED]: Permission denied (publickey).", 61 "unreachable": true 62} 63PLAY RECAP ********************************************************************* 64[MASKED] : ok=0 changed=0 unreachable=1 failed=0 skipped=0 rescued=0 ignored=0
环境与已完成配置
- GitLab Runner 使用 shell 执行模式
- 目标Ubuntu服务器已创建
deployer用户,本地可通过SSH密钥正常登录该用户,公钥已添加至用户authorized_keys文件 - CI/CD 变量
DEV_INVENTORY配置内容:
[dev] 164.90.187.121 ansible_user=deployer
- 服务器仅部署GitLab Runner和Ansible,无其他额外操作
核心问题
本地通过SSH密钥可正常连接目标服务器,但GitLab CI中执行Ansible Playbook时,出现Load key "/xxx/ansible.key": error in libcrypto及*Permission denied (publickey)*错误,导致无法连接目标主机。
内容的提问来源于stack exchange,提问作者kabdik
相关产品推荐
相关产品推荐

