【问题标题】:Error loading key "/dev/fd/63: Error when trigger the CI/CD in GitlabError loading key "/dev/fd/63: 在 Gitlab 中触发 CI/CD 时出错
【发布时间】:2022-01-06 05:31:01
【问题描述】:

Gitlab CI/CD 在通过 ssh 连接到 Digital Ocean Droplet 时失败:

这是我的 CI 文件

before_script:
  - apt-get update -qq
  - apt-get install -qq git
  # Setup SSH deploy keys
  - 'which ssh-agent || ( apt-get install -qq openssh-client )'
  - eval $(ssh-agent -s)
  - ssh-add <(echo "${SSH_PRIVATE_KEY}" | base64 --decode | tr -d "\r")
  - mkdir -p ~/.ssh
  - '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config'
    
deploy:
  type: deploy
  environment:
    name: production
  script:
    - ssh root@xxx.xxx.xxx.xxx "cd /var/www/html/customer-web && git checkout master && git pull origin master && npm install && npm run build && exit"
  only:
    - master

当我触发它时,我收到以下错误

$ eval $(ssh-agent -s)
Agent pid 267
$ ssh-add <(echo "${SSH_PRIVATE_KEY}" | base64 --decode | tr -d "\r")
Error loading key "/dev/fd/63": invalid format
Cleaning up project directory and file based variables
00:01
ERROR: Job failed: exit code 1

我也将 ~/.ssh/id_rsa 保存在 CI/CD 变量中。任何人都知道为什么会出现此错误并失败。

【问题讨论】:

  • 尝试将值保存在 CI 的文件变量中。然后ssh-add &lt;(cat $SSH_KEY_FILE)

标签: node.js gitlab-ci digital-ocean droplet


【解决方案1】:

我使用 OPENSSH 生成的密钥,而不是在 RSA 中生成密钥后的 RSA 中,问题已得到修复

【讨论】:

    猜你喜欢
    • 2023-03-10
    • 1970-01-01
    • 1970-01-01
    • 2018-12-15
    • 2021-04-17
    • 2021-08-15
    • 2018-06-11
    • 2020-09-20
    • 1970-01-01
    相关资源
    最近更新 更多