2017-09-16 123 views
0

我有一个Docker容器内的bash脚本,需要通过ssh访问远程服务器。我有一个变量中的SSH密钥。我如何将它添加到SSH?从变量添加SSH密钥

+1

密钥是如何进入变量的?你可能想要跳过这一步,并从原始文件中直接读取'ssh-add'。 – chepner

+0

在我的特殊情况下,SSH密钥是一个GitLab秘密变量。 – Lyberta

回答

1
ssh-add - <<< "${SSH_PRIVATE_KEY}" 
+1

或者因为它是bash'ssh-add - <<<“$ {SSH_PRIVATE_KEY}”'并且使用* herestring *。 –

+0

速度更快吗?为什么'<<<'?怎么样'ssh-add - <“$ {SSH_PRIVATE_KEY}”'? – Lyberta

+3

那么,变量'“$ {SSH_PRIVATE_KEY}”'拥有这个值。你需要它作为'stdin'上'ssh-add'的输入。作为一个方便的功能bash有* heredoc *和* herestring *。您可以使用* herestring'' <<<'使'ssh-add - <<<“$中的''{ssh_PRIVATE_KEY}''中的变量数据作为'stdin'上的输入出现在'ssh-add'中{} SSH_PRIVATE_KEY“'。它的速度更快,不会产生额外的* subhells *。你用'echo key |生成了3个ssh-add -'(1代表'echo',1-代表管道'|'和1-代表ssh-add)。 (注意:'''''''''''''''''''''ssh-add'后面,但我怀疑你会这样做。) –