2013-02-26 93 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过期或重新启动后重新输入密钥。