2013-02-26 91 views
2

我有一個公私密碼的ssh密鑰對(由ssh-keygen生成,而不是的密碼),我使用它與我的bitbucket帳戶,特別是與一個mercurial存儲庫。ssh-add,自動添加一個私鑰

通常我手動添加我的家庭工作電腦中的私鑰,使用ssh-add ~/.ssh/id_rsa。我正在尋找一種在每次啓動時自動執行此操作的方法。有很多教程,但我仍然有一些問題。

我曾嘗試用:

  1. 添加行ssh = ssh -i ~/.ssh/id_rsa -C~/.hgrc善變的設置文件。這一個不起作用。

  2. 與以下內容創建~/.ssh/config ssh配置文件:

    Host bitbucket-ssh 
        Hostname ssh://[email protected]/... 
        IdentityFile ~/.ssh/id_rsa 
    

的第二個沒有工作過。

我錯了什麼?我應該在每次啓動時使用運行ssh-add的簡單bash腳本嗎?

在此先感謝。

+1

你確定'〜/ .ssh /'不是組或世界可讀的嗎?你是否將'-v'傳遞給'ssh'來理解正在發生的事情? – 2013-02-27 05:55:20

+0

@BasileStarynkevitch是的,'〜/ .ssh /'是'rwx ------'。我沒有通過-v選項,我現在要做。 – eang 2013-02-27 10:12:10

+1

「〜/ .ssh /」中的文件,特別是「〜/ .ssh/id_rsa」中的文件只能由您(不是羣組或其他人)讀取, – 2013-02-27 10:18:10

回答

1

如果ssh-add ~/.ssh/id_rsa通過命令行調用它可以解決您的問題,只需將它添加到您的.bash_profile(或同等版本,如果您不使用bash)並完成它。它會在您登錄時運行。

3

我知道這個問題很舊,但我在任何相關問題中找不到(imho)正確的答案。

不要添加任何東西到你的任何shell啓動腳本,這是不必要的駭客。

相反,加

AddKeysToAgent yes 

您的.ssh/config中

這樣,SSH-ADD自動運行您第一次ssh到另一個盒子。您只需在ssh-agent過期或重新啓動後重新輸入密鑰。