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

向GitLab CI流水线添加ED25519 SSH密钥时遇libcrypto加载错误

GitLab流水线ED25519 SSH密钥加载错误解决方法

问题核心

ED25519私钥的格式要求严格,首尾标记行必须独立存在,中间Base64分段需保持正确换行。你之前的操作错误地对环境变量执行了文件追加命令,且可能在环境变量中密钥格式本身就有问题。

修复步骤

1. 修正环境变量中的密钥格式

直接复制完整的ED25519私钥内容(包括-----BEGIN OPENSSH PRIVATE KEY-----开头、分段的Base64字符串、-----END OPENSSH PRIVATE KEY-----结尾)粘贴到GitLab组环境变量中,不要手动添加多余换行,GitLab会自动保留密钥原有的换行结构。

2. 修改流水线YAML的密钥加载逻辑

将环境变量中的密钥写入临时文件后再加载,避免直接通过管道传递时的格式问题,同时确保私钥文件权限符合SSH要求:

script:
    - 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client git -y )'
    - eval $(ssh-agent -s)
    # 将环境变量中的密钥写入临时文件
    - echo "$PIPELINE_SSH_KEY" > /tmp/id_ed25519
    # 设置私钥文件权限(SSH要求私钥权限为600)
    - chmod 600 /tmp/id_ed25519
    # 从临时文件加载密钥
    - ssh-add /tmp/id_ed25519
    - mkdir -p ~/.ssh
    - chmod 700 ~/.ssh
    - ssh-keyscan $CI_SERVER_HOST >> ~/.ssh/known_hosts
    - chmod 644 ~/.ssh/known_hosts

3. 额外排查点

  • 可在流水线中临时添加echo "$PIPELINE_SSH_KEY"命令,查看密钥完整内容,确认没有截断、多余空格或异常字符。
  • 若使用GitLab文件存储密钥,确保文件无编码问题(如UTF-8 BOM),可通过cat命令验证文件内容完整性。

内容的提问来源于stack exchange,提问作者mdailey77

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 09:43:10