2017-06-29 122 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 

使用此命令適用於我。