2011-06-15 46 views
0

我有一個Ant構建,它有時會在我的服務器上的目錄中執行'git push'。我可以交互地做到這一點,因爲它會爲我的密鑰請求密碼,但如果您設置一個cron作業來無人值守地運行構建,這會變得有問題。SSH和無人蔘與進程

除了不使用密碼之外,還有其他選擇嗎?我聽說過使用ssh-agent,但我也聽說過無人蔘與的過程,路由不起作用。有沒有人有任何建議,也許是如何實施它的一個例子?

我看到有網友提出來運行的cron作爲守護在這裏: Accessing SSH key from bash script running via a cron job - 但我不知道我怎麼能做到這一點或者將它以純文本等把我的密碼不影響它

任何幫助非常感謝。

回答

0

首先,爲自己設置無密碼登錄。

使用ssh-keygen生成一個公鑰/私鑰對密碼。將公鑰添加到服務器上的〜/ .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文檔。

當然,你想保持私鑰文件只能由你讀。

+0

在服務器上創建git帳戶有什麼好處? – jimlamiell 2011-06-15 15:42:47

+0

隔離。 'git'帳戶只能訪問需要完成其工作的數據。因此,如果有人破壞了賬戶(或者你的密鑰),他們只能搞亂你的git倉庫,而不會損害其他任何東西。 – Nemo 2011-06-15 15:49:13

+0

你可以用git賬戶來描述設置嗎,我對此還是有點遺憾。鑰匙去哪了,我將如何能夠從原始賬戶上的git賬戶運行ant build? – jimlamiell 2011-06-15 16:15:57

0

我可以通過在git服務器上創建一個受限帳戶來解決這個問題,並讓螞蟻客戶端使用該無限制帳戶的無密鑰證書。

+0

你能再描述一下嗎?此外,git存儲庫也在我的服務器上,我使用SSH將我的活動站點推送到不同子域中的存儲庫。 – jimlamiell 2011-06-15 14:47:19