在SSH中使用bash脚本时,为Git输入私钥密码
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在SSH中使用bash脚本时,为Git输入私钥密码相关的知识,希望对你有一定的参考价值。
这是我到目前为止在<<EOF
中的代码,而ssh'ing到一个盒子里
mkdir ~/.ssh/
rm ~/.ssh/config
touch ~/.ssh/config
echo 'Host *******' >> ~/.ssh/config
echo ' StrictHostKeyChecking no' >> ~/.ssh/config
cp ~/gittoken ~/.ssh/id_rsa
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa
cd /root
git clone ***********
expect "assword:"
send "$git_token_passphrase
";
interact
我得到的错误是
Permission denied (publickey).
fatal: Could not read from remote repository.
我已经把我见过的多个不同的答案结合起来,我觉得这可能对我的情况有所帮助。
当我在盒子上手动运行它们时,我可以运行所有这些命令。所以我的猜测是,在通过脚本进行ssh时运行它们需要一些额外的步骤。此外,期望和发送不适用于我的系统,但我想我还是把它们放在那里,以表明我已经尝试过它们。
/bin/bash: line 105: expect: command not found
/bin/bash: line 106: send: command not found
/bin/bash: line 107: interact: command not found
答案
您可以使用sshpass
来实现这一目标。
但是从现在开始,整个设置的安全性不在于知道密码的人的头脑中,而是与脚本中的安全性一样强 - 或者 - 如果你对一些持有密码的文件稍微松懈,你可能会以及通过运行从SSH密钥中删除密码保护
ssh-key -f ~/.ssh/id_rsa -p
并输入两次空密码。
以上是关于在SSH中使用bash脚本时,为Git输入私钥密码的主要内容,如果未能解决你的问题,请参考以下文章