![如何避免在 schell 脚本执行期间需要重新输入密码](https://linux22.com/image/1605707/%E5%A6%82%E4%BD%95%E9%81%BF%E5%85%8D%E5%9C%A8%20schell%20%E8%84%9A%E6%9C%AC%E6%89%A7%E8%A1%8C%E6%9C%9F%E9%97%B4%E9%9C%80%E8%A6%81%E9%87%8D%E6%96%B0%E8%BE%93%E5%85%A5%E5%AF%86%E7%A0%81.png)
我正在编写一个 shell 脚本,执行以下重复任务
- git 提交
- git push
- mvn 发布:准备
- mvn 发布:执行
在JAVA软件项目的几个路径中。
现在,每个命令都会至少要求输入一次我的 rsa 令牌密码,有时甚至多次:“输入密钥 /..../.ssh/id_rsa 的密码:”
有办法解决这个问题吗?如果我每次执行脚本时都必须输入一次密码,那就没问题了。
一个边界条件:我不能使用“spawn、expect、send”
一个复杂的问题:我在 CENTOS7 shell 中运行脚本,该脚本通过 X-Win32 在 windows10 机器上调用。我不想登录到本机 Linux 桌面环境。
注意:这是我在 askubuntu 上发布的同一个问题的副本 - 这是一个题外话(https://askubuntu.com/questions/1178707/how-to-avoid-neccessity-to-re-enter-password-during-schell-script-execution)
答案1
使用ssh-agent
。
您的系统上很可能已经运行了该程序。尝试使用以下命令将您的密钥添加到代理:
ssh-add
如果ssh-agent
没有运行,您将收到以下消息:
“无法打开与您的身份验证代理的连接。”
要修复该问题,请使用:
eval $(ssh-agent)
然后再次运行该ssh-add
命令。
这里是ssh 代理手册页。