我将在我的测试网络服务器上为git pull更改设置一个cronjob。但我的私钥有密码,我怎么能把它作为参数传递?
git pull something mypassword
我愿意在cronjob上使用它,我不想在没有密码的情况下留下私钥。
由于
答案 0 :(得分:2)
您不想在没有密码的情况下保留私钥,但在cron作业描述中存储密码没有问题?这看起来有点奇怪。
您可以使用ssh-agent(不确定,但搜索它),但坦率地说我觉得它有点傻。
答案 1 :(得分:1)
没问题。 keychain
是您所需要的。你应该能够在你的发行版中找到它。 Gentoo Linux有一个guide。
答案 2 :(得分:0)
您需要的是只读访问权限。要通过SSH执行此操作:
less /path/to/repo/.git/config
)但不能写入(touch /path/to/repo/.git/config
应该失败)。cron
可读的路径中创建一个没有密码的SSH密钥。ssh-copy-id -i /path/to/passwordless/id.pub cron-user@server.example.com
eval $(ssh-agent); ssh-add /path/to/passwordless/id;
。crontab
醇>
应该这样做。
答案 3 :(得分:0)
您可以使用expect脚本在需要时提供密码。像这样:
#!/usr/bin/expect --
set password ssh-key-password
spawn git pull
expect "Enter passphrase*:" {send "$password\r"}
您可能需要包含
expect eof
在脚本的末尾