diff --git a/.woodpecker/my-first-workflow.yaml b/.woodpecker/my-first-workflow.yaml index 2a4df924..4ba7e25e 100644 --- a/.woodpecker/my-first-workflow.yaml +++ b/.woodpecker/my-first-workflow.yaml @@ -30,8 +30,25 @@ steps: - mkdir -p /root/.ssh && chmod 700 /root/.ssh # 写入并清理SSH密钥(兼容RSA/ED25519,保留原始换行) # 替换原echo "$WOODPECKER_SSH_KEY"那行,其余ssh配置不变 - - echo "$WOODPECKER_SSH_KEY" > /root/.ssh/id_ed25519 && chmod 600 /root/.ssh/id_ed25519 - + # ========== 关键修改:SSH密钥写入逻辑(核心修复) ========== + # 替换原echo命令,用cat+EOF保留密钥原始换行,避免格式损坏 + - | + if [ -n "$WOODPECKER_SSH_KEY" ]; then + # 写入ED25519密钥(保留原始格式,单引号EOF避免转义) + cat > /root/.ssh/id_ed25519 << 'EOF' + $WOODPECKER_SSH_KEY + EOF + chmod 600 /root/.ssh/id_ed25519 + echo "✅ ED25519密钥写入完成" + # 可选:兼容RSA密钥(如果ED25519解析失败,启用下方逻辑) + # elif [ -n "$WOODPECKER_SSH_KEY_RSA" ]; then + # cat > /root/.ssh/id_rsa << 'EOF' + # $WOODPECKER_SSH_KEY_RSA + # EOF + # chmod 600 /root/.ssh/id_rsa + # echo "✅ RSA密钥写入完成" + # fi + - chmod 600 /root/.ssh/id_ed25519 # 添加GitHub主机密钥(完整覆盖,避免重复) - ssh-keyscan -H github.com > /root/.ssh/known_hosts