我有一个位于Docker容器内部的bash脚本,需要通过ssh访问远程服务器。我在变量中有SSH密钥。如何将它添加到SSH中?
ssh-add - <<< "${SSH_PRIVATE_KEY}"
ssh-add - <<<"${SSH_PRIVATE_KEY}"
并使用herestring。 - David C. Rankin<<<
?ssh-add - < "${SSH_PRIVATE_KEY}"
呢? - user3624760${SSH_PRIVATE_KEY}
保存值。你需要将其作为 ssh-add
命令的标准输入。Bash 提供两种方便的特性 here-document 和 here-string。你可以使用 here-string <<<
,使 "${SSH_PRIVATE_KEY}"
中的变量数据出现在 ssh-add
命令的标准输入中,命令为 ssh-add - <<<"${SSH_PRIVATE_KEY}"
。相比于 echo key | ssh-add -
生成额外的 子 shell 数量更少,因此执行速度更快。(注意:可能需要在 ssh-add
后加上 '-'
,但我认为你需要这样做)。 - David C. Rankineval $(ssh-agent -s) && ssh-add - <<< '${{ secrets.SSH_PRIVATE_KEY }}'
。 - Nato Boram设置
-> CI/CD
-> 变量
中添加您的变量在您的.gitlab-ci.yml
文件中使用该变量:
- echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add - > /dev/null
echo "${SSH_PRIVATE_KEY}" | ssh-add -
ssh-add <(echo "$SSH_PRIVATE_KEY")
echo "${SSH_PRIVATE_KEY}" | ssh-add -
- Joseph Adam
ssh-add
直接从原始文件中读取。 - chepner