2011-05-24 75 views
41

每當我嘗試將任何內容推送到GitHub時,它會詢問地址[email protected]:...,然後它需要密碼。有沒有辦法讓這個自動化?Git爲每次推送輸入長密碼

我正在使用Linux Ubuntu。

+0

給我們一些更多的信息:你是否將github添加爲遠程?你怎麼稱呼'git push'?命令的確切輸出是什麼? – eckes 2011-05-24 06:04:21

回答

85

您可以使用ssh-agent來記住您的密碼(Gnome會自動爲您運行,通常爲...)。

$ ssh-agent bash 
$ ssh-add 
Enter passphrase for /home/elyobo/.ssh/id_rsa: 
Identity added: /home/elyobo/.ssh/id_rsa (/home/elyobo/.ssh/id_rsa) 

從現在開始,從運行此終端內,你的密碼短語會被記住。理想情況下,你會自動運行它,所以在gnome內運行的所有shell都可以工作;退房Gnome Keyring

+0

我沒有使用任何GUI。只是終端。我正在使用Ubuntu服務器。 你的代碼實際上工作。現在問題是我需要重新輸入:[email protected]:username/... .git是否有解決方案? – jnbdz 2011-05-24 07:02:21

+1

啊,是的,有了服務器,你需要做到以上幾點。但是,如果您可以使用本地計算機上的密鑰訪問存儲庫,則仍然可以使用'ssh -A'轉發密鑰(查找手冊頁),並使用桌面上的ssh-agent處理密碼,將節省您一些努力(並且如果您打開它們,可以在多個終端上工作)。我原以爲你可以運行'git push'或者其他東西,但是我對git不是很熟悉,只是SSH :) – 2011-05-24 07:07:43

+0

檢查ssh代理轉發,沒有理由在多個系統上管理你的ssh,進入。 – Tekkub 2011-05-24 08:41:54

0

另一種方法是使用ssh-agentssh-add命令到您的私人身份添加到認證代理。

$ eval "$(ssh-agent -s)" 
Agent pid 1174 
$ ssh-add ~/.ssh/id_rsa 
Enter passphrase for /home/james/.ssh/id_rsa: 
Identity added: /home/james/.ssh/id_rsa (/home/james/.ssh/id_rsa)