Bash 脚本的 SSH(SSH 代理)
SSH for Bash Script (SSH-Agent)
不确定这是否是一个重复的问题,但我真的找不到解决我的问题的方法。
问题是我无法运行以下命令。
#!/bin/bash
SCRIPT1="cd /path/to/project;"
SCRIPT2="git pull;"
ssh "production" ${SCRIPT1} "ssh-agent /bin/bash; ssh-add ~/.ssh/my_bitbucket_key;" ${SCRIPT2}
仍然是 bash 和 ssh 的新手,所以我也不确定这是否是正确的方法。
希望你能帮助我。谢谢!
您的脚本的问题在于您正在启动 ssh-agent
运行 bash
的新实例。 Bash 执行您的命令无权访问此代理。相反,你想要
ssh "production" "${SCRIPT1}
eval $(ssh-agent)
ssh-add ~/.ssh/my_bitbucket_key
${SCRIPT2}"
(必须转义 eval
之后的美元符号,因为未转义的美元符号将在启动 ssh
命令之前由本地 shell 计算。)
不确定这是否是一个重复的问题,但我真的找不到解决我的问题的方法。
问题是我无法运行以下命令。
#!/bin/bash
SCRIPT1="cd /path/to/project;"
SCRIPT2="git pull;"
ssh "production" ${SCRIPT1} "ssh-agent /bin/bash; ssh-add ~/.ssh/my_bitbucket_key;" ${SCRIPT2}
仍然是 bash 和 ssh 的新手,所以我也不确定这是否是正确的方法。
希望你能帮助我。谢谢!
您的脚本的问题在于您正在启动 ssh-agent
运行 bash
的新实例。 Bash 执行您的命令无权访问此代理。相反,你想要
ssh "production" "${SCRIPT1}
eval $(ssh-agent)
ssh-add ~/.ssh/my_bitbucket_key
${SCRIPT2}"
(必须转义 eval
之后的美元符号,因为未转义的美元符号将在启动 ssh
命令之前由本地 shell 计算。)