You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 01:24:54