2011-03-05 55 views
1

我使用的組合作爲git存儲庫。我想保留一個本地版本到我的bluehost主機。每次我問來獲取最新的副本,它讓我把密碼 -如何避免在藍牙主機上使用git時使用ssh密碼短語

Enter passphrase for key '/home/xxx/.ssh/id_dsa': 

我怎樣才能避免這種情況?還有一兩件事,如果我的混帳上的cron添加一個命令,如下

cd /path/to/project.git && git fetch -q 

它告訴

/bin/sh: git: command not found 

如何得解決這個問題?

順便說一句,我試圖找出我的redmine工具。 謝謝 Musa Musa

+1

如果您有兩個問題,請發佈兩個問題,而不是將它們分組到一個問題。 – Jim 2011-03-05 17:31:13

回答

3

您必須使用SSH代理將解密的密鑰存儲在內存中。

這在unix下很容易,只需啓動eval $(ssh-agent)然後ssh-add這會詢問你的密碼,然後存儲密鑰。

對於cron問題,請嘗試輸入完整路徑,您可以在任何shell上使用which git獲取它。

+0

謝謝,我嘗試了ssh-agent,然後將ssh-add命令添加到我的託管中,它說「無法打開與身份驗證代理的連接」。什麼是錯的?另外我會在我的cron上添加git fetch命令以從遠程主機獲取,這是否與cron任務一起工作? – Musa 2011-03-05 18:17:31

+0

嘗試啓動「'eval $(ssh-agent)'」它應該工作,我會更新我的答案。cron任務中的'git fetch'應該可以工作,但我不知道如果發生合併衝突將會發生什麼。 – krtek 2011-03-05 18:21:07

1

你可以看看keychain,它負責根據需要啓動ssh-agents。從rpm包描述:

Keychain是OpenSSH的經理, ssh.com,Sun SSH和GnuPG代理。它 充當代理的前端, 允許您輕鬆地爲每個系統提供一個 長時間運行的代理進程,而不是每個登錄進程的 。這個 顯着減少了您需要輸入您的 密碼的次數 ,從每次新登錄 會話一次輸入您的密碼012次到每次當地 機器重​​新啓動。

-1

這裏有一個鏈接,告訴你究竟是如何做到這一點:

http://linuxconfig.org/passwordless-ssh

注意到第一評論。我需要像該評論者所建議的那樣替換scp命令。

+0

我不知道hostingrails.com是否發生了變化。如果不是,這是一個可悲的clickbait,應該刪除。 – Plummer 2015-06-30 06:11:14

+0

這只是一箇舊的鏈接。我更新了它。 – emersonthis 2015-06-30 12:13:53