我正在编写一个 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 代理手册页。