2017-06-29 124 views
0

我正在尝试在远程服务器上的Gitlab CI中执行一些操作。当使用RSA密钥一切正常,但是当我尝试使用ED25519键,我坚持:Gitlab CI使用ed25519私钥

Running with gitlab-ci-multi-runner 9.3.0 (3df822b) 
    on Internal Runner (079281fd) 
Using Docker executor with image 1drop/docker:git ... 
Using docker image sha256:b9cf0ca386341048f8696d950123e20b5d6583c190f266aacb25b6d3d4736028 for predefined container... 
Pulling docker image 1drop/docker:git ... 
Using docker image 1drop/docker:git ID=sha256:966d107d59806ab1a3aa2229618858b5141e2c7bb183dd9f4dfaafdca4d51774 for build container... 
Running on runner-079281fd-project-207-concurrent-0 via srv1... 
Fetching changes... 
$ eval $(ssh-agent -s) 
Agent pid 17 
$ ssh-add <(echo "$SSH_PRIVATE_KEY"| base64 -d) 
Enter passphrase for /dev/fd/63: ERROR: Job failed: exit code 1 

正如你可以看到我已经尝试过编码使用Base64的ed25519关键,如果当Gitlab被注射了什么问题将SSH_PRIVATE_KEY变量放入运行时。
该键的内容是好的,我可以输出它并在本地进行测试,它的工作原理。另外,如果我将一个常规的RSA密钥放入SSH_PRIVATE_KEY变量中,它可以很好地工作。但在一些客户服务器上,我需要使用ed25519,我一直在收到这个“输入密码”的东西,我不知道为什么。

我需要安装一些库才能使其工作吗?我的SSH模块说它可以做ed25519键。

+0

该系统中的OpenSSH版本是什么? – Jakuje

+0

/#apk信息openssh openssh-7.4_p1-r0描述: OpenBSD的免费SSH版本的端口 –

+0

这是'ssh-add'运行的地方吗?这是一个码头形象吗? – Jakuje

回答

1

该文档已更新。请参阅https://docs.gitlab.com/ce/ci/ssh_keys/README.html

## 
    ## 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 
    ## 
    - echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add - > /dev/null 

使用此命令适用于我。