2017-09-16 170 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'後面,但我懷疑你會這樣做。) –