如何让ssh使用不同的id_dsa

时间:2009-04-10 02:48:33

标签: ssh key

如何在连接到某个特定主机时说服id_dsa未存储在〜/ .ssh中。

显而易见的问题是为什么。答案是这个密钥更敏感,需要密码保护,而另一个密钥用于自动化。

虽然这不是一个编程问题,但我不会惊讶地发现这需要一个编程解决方案。

3 个答案:

答案 0 :(得分:12)

Theres是一个方便的技巧,你可以用来使它变得非常容易,奇怪的是,我刚刚和朋友在30分钟前讨论过这个。

的〜/ .ssh /配置

IdentityFile ~/.ssh/ident/%r@%h
IdentityFile ~/.ssh/id_rsa
IdentityFile ~/.ssh/id_dsa

这使得使用回退模式变得非常容易,因为选项是从上到下运行的。

然后要为“Bob @ someHost”指定特定键,您只需创建文件

~/.ssh/ident/Bob@someHost

它会在登录该主机时首先尝试。

如果找不到该文件,或者该密钥被拒绝,它将尝试下一个,在这种情况下,

~/.ssh/id_rsa

这种技术的好处是你不必每次添加另一个主机时都添加一个新条目,你所要做的就是在正确的位置创建密钥文件,然后自动完成其余的工作。

答案 1 :(得分:6)

.ssh/config中,设置如下内容:

Host somehost
     IdentityFile /path/to/extra_secret_key

我有一个IdentityFile设置为~/.ssh/iddsa_aux的主机,但该参数应该接受任何路径名。

答案 2 :(得分:2)

来自ssh手册页:

 -i identity_file
         Selects a file from which the identity (private key) for RSA or
         DSA authentication is read.  The default is ~/.ssh/identity for
         protocol version 1, and ~/.ssh/id_rsa and ~/.ssh/id_dsa for pro-
         tocol version 2.  Identity files may also be specified on a per-
         host basis in the configuration file.  It is possible to have
         multiple -i options (and multiple identities specified in config-
         uration files).