这是我的代码 giltlab-ci.yml :
before_script:
##
## Install ssh-agent if not already installed, it is required by Docker.
## (change apt-get to yum if you use an RPM-based image)
##
- 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )'
##
## Run ssh-agent (inside the build environment)
##
- eval $(ssh-agent -s)
##
## Add the SSH key stored in SSH_PRIVATE_KEY variable to the agent store
## We're using tr to fix line endings which makes ed25519 keys work
## without extra base64 encoding.
## https://gitlab.com/gitlab-examples/ssh-private-key/issues/1#note_48526556
##
- mkdir -p ~/.ssh
#- echo -n "$PROJECT_SSH_KEY" | ssh-add - >/dev/null
- echo "$PROJECT_SSH_KEY"
- ssh-add <(echo "$PROJECT_SSH_KEY")
- '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config'
##
## Create the SSH directory and give it the right permissions
##
- mkdir -p ~/.ssh
- chmod 700 ~/.ssh
##
## Optionally, if you will be using any Git commands, set the user name and
## and email.
##
#- git config --global user.email "user@example.com"
#- git config --global user.name "User name"
Run Code Online (Sandbox Code Playgroud)
我得到了这个
在 Allence-Tunisie-docker-runner sH47eTgb 上使用 gitlab-runner 11.8.0 (4745a6f3) 运行,使用 Docker 执行器和镜像 ntfactory/ci-tool:0.0.2 ... 拉取 docker 镜像 ntfactory/ci-tool:0.0.2 。 .. 使用 docker 镜像 sha256:7fe7b170806f6846271eec23b41c4f79202777f62c0d7a32165dc41722900979 用于 ntfactory/ci-tool:0.0.2 ......运行在 7project-17b934-b934-b934-b934-b34-b34-b34-b34c04c04 allence-tunisie/e-formation'... 将 0a6b48ef 检出为 feat/gitlab-ci... 跳过 Git 子模块设置 检查默认缓存... 未提供 URL,将不会从共享缓存服务器下载缓存。相反,将提取本地版本的缓存。成功提取缓存 $ which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y ) /usr/bin/ssh-agent $ eval $(ssh-agent -s) Agent pid 12 $ mkdir -p ~/.ssh $ echo " $SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add - > /dev/null 错误加载密钥“(stdin)”:格式无效错误:作业失败:退出代码 1
即使我试过 - echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add - > /dev/null 我收到这个错误
加载密钥“(标准输入)”时出错:格式无效
Bri*_*ian 27
当 $SSH_PRIVATE_KEY 中的私钥格式错误时会发生此错误,如果在其中添加一些随机字符,您可以轻松地在本地测试它。特别是,当您将私钥复制并粘贴到在线表单中的 SSH_PRIVATE_KEY 变量中时,它会发生在 Travis-CI 上。它与 -----BEGIN RSA PRIVATE KEY-----, -----END RSA PRIVATE KEY----- 块前后的换行符有关。出于这个原因,我使用 base64 编码来确保密钥的格式正确。
尝试这个:
对您的私有 RSA 密钥进行编码
猫 my_private_key | base64 -w0
将 base64 字符串添加到您的项目变量中。
ssh-add <(echo "$SSH_PRIVATE_KEY" | base64 -d)
https://gitlab.com/gitlab-examples/ssh-private-key/issues/1#note_15038961
| 归档时间: |
|
| 查看次数: |
10540 次 |
| 最近记录: |