我要爲我的測試web服務器上的git pull更改設置一個cronjob。但我的私鑰有密碼,我怎麼能通過它作爲參數?沒有輸入私鑰密碼的Git拉
git pull something mypassword
我願意在cronjob上使用它,我不想在沒有密碼的情況下留下私鑰。
感謝
我要爲我的測試web服務器上的git pull更改設置一個cronjob。但我的私鑰有密碼,我怎麼能通過它作爲參數?沒有輸入私鑰密碼的Git拉
git pull something mypassword
我願意在cronjob上使用它,我不想在沒有密碼的情況下留下私鑰。
感謝
你不想離開沒有密碼的私鑰,但你必須在cron作業描述存儲密碼沒有問題?這似乎有點奇怪。
你也許可以用ssh-agent(不確定,但搜索它)來做到這一點,但坦率地說,我覺得它有點傻。
自動cronjob風格的調用的經驗法則是使用一個單獨的,非常緊密安全的無密碼私鑰(即使用一個單獨的用戶與非常削減的權限)。 – GreyCat
沒問題。 keychain
是你需要的。你應該可以在你的發行版中找到它。 Gentoo Linux有guide。
你需要的是隻讀訪問。要通過SSH做到這一點:
less /path/to/repo/.git/config
),但不寫(touch /path/to/repo/.git/config
應該失敗)。cron
可讀的路徑中創建SSH密鑰而不需要密碼。ssh-copy-id -i /path/to/passwordless/id.pub [email protected]
crontab
列出的腳本的開頭添加eval $(ssh-agent); ssh-add /path/to/passwordless/id;
。應該這樣做。
您可以使用期望腳本在需要時提供密碼。類似這樣的:
#!/usr/bin/expect --
set password ssh-key-password
spawn git pull
expect "Enter passphrase*:" {send "$password\r"}
你可以設置http://訪問你的回購? – Rudi
不,只是SSH :( – dextervip