来自一行环境变量的 ssh 私钥
Private ssh key from one line environment var
我的 privkey.pem 私钥格式为
-----BEGIN RSA PRIVATE KEY-----
xxx
-----END RSA PRIVATE KEY-----
我需要创建一个 Bamboo 任务以使用此密钥通过 ssh 连接到服务器。不幸的是,我看到 Bamboo 只能在一行中存储变量,所以如果我粘贴密钥,所有“\n”都会被删除,所以这不起作用:
eval $(ssh-agent -s)
echo "${bamboo.sshKey}" | ssh-add - > /dev/null
scp -vvv -o StrictHostKeyChecking=no .....
有没有一种方法可以让 ssh-add 读取“一行”格式的私钥?
或者,是否有一种干净的方法来重新解析密钥以再次获得剥离的“\n”?
我不知道斑竹。所以可能有更好的解决方案。但一种方法是使用一些符号来分隔变量中的行。然后在将符号输入 ssh-add
.
时使用 sed
或 tr
之类的东西将符号转换为新行
见Replace comma with newline in sed on MacOS?
我意识到我有点晚了,但是 sed
和 tr
的解决方案对我来说效果不佳。我最终使用了 base64
和 base64 -d
,例如
echo "${bamboo.sshkey}" | base64 -d > id_rsa
chmod 600 id_rsa
export GIT_SSH_COMMAND='ssh -i id_rsa -o StrictHostKeyChecking=no'
....
rm id_rsa
使用像 sshkey
这样的变量名会使 Bamboo 掩盖它。
我的 privkey.pem 私钥格式为
-----BEGIN RSA PRIVATE KEY-----
xxx
-----END RSA PRIVATE KEY-----
我需要创建一个 Bamboo 任务以使用此密钥通过 ssh 连接到服务器。不幸的是,我看到 Bamboo 只能在一行中存储变量,所以如果我粘贴密钥,所有“\n”都会被删除,所以这不起作用:
eval $(ssh-agent -s)
echo "${bamboo.sshKey}" | ssh-add - > /dev/null
scp -vvv -o StrictHostKeyChecking=no .....
有没有一种方法可以让 ssh-add 读取“一行”格式的私钥? 或者,是否有一种干净的方法来重新解析密钥以再次获得剥离的“\n”?
我不知道斑竹。所以可能有更好的解决方案。但一种方法是使用一些符号来分隔变量中的行。然后在将符号输入 ssh-add
.
sed
或 tr
之类的东西将符号转换为新行
见Replace comma with newline in sed on MacOS?
我意识到我有点晚了,但是 sed
和 tr
的解决方案对我来说效果不佳。我最终使用了 base64
和 base64 -d
,例如
echo "${bamboo.sshkey}" | base64 -d > id_rsa
chmod 600 id_rsa
export GIT_SSH_COMMAND='ssh -i id_rsa -o StrictHostKeyChecking=no'
....
rm id_rsa
使用像 sshkey
这样的变量名会使 Bamboo 掩盖它。