我有一个Ant构建,有时会在我的服务器上的目录中执行'git push'。我可以交互式地做这件事,因为它要求我的密钥的密码,但如果你设置一个cron作业来无人值守地运行构建,这就会成为问题。
除了不使用密码短语之外,我还有其他选择吗?我听说过使用ssh-agent,但我也听说过无人值守的进程,路由不起作用。有没有人对此有任何建议,也许是如何实现它的一个例子?
我看到有人建议在这里运行cron作为守护进程: Accessing SSH key from bash script running via a cron job - 但我不知道如何做到这一点,或者在没有妥协的情况下输入我的密码,将其放在纯文本等等。
非常感谢任何帮助。
答案 0 :(得分:0)
我会通过在git服务器上创建受限帐户并让ant客户端使用该受限帐户的无密钥证书来解决此问题。
答案 1 :(得分:0)
首先,为自己设置无密码登录。
使用ssh-keygen
生成带有 no 密码的公钥/私钥对。将公钥附加到服务器上的〜/ .ssh / authorized_keys。
然后运行ssh -i /path/to/private_key server
以确认无密码登录正在运行。
最后,configure git to use that ssh -i ...
command。
正如@mah建议的那样,您可能希望在服务器上创建特定的git
帐户。您可以将公钥添加到~git / .ssh / authorized_keys以启用无密码登录。
authorized_keys还具有限制传入连接可以运行的命令的选项。如果您对这些功能感兴趣,请阅读SSH文档。
当然,您希望保持私钥文件只能由您阅读。