设置默认的ssh密钥位置

tar*_*ate 54 ssh

默认情况下,ssh会在〜/ .ssh文件夹中查找其键.我想强迫它总是在另一个地方看.

我正在使用的解决方法是将密钥从非标准位置添加到代理:

ssh-agent
ssh-add /path/to/where/keys/really/are/id_rsa 
Run Code Online (Sandbox Code Playgroud)

(在Windows上的Linux和MingW32 shell上)

Dre*_*ell 84

如果您只想指向身份文件的其他位置,则可以使用以下条目修改〜/ .ssh/config文件:

IdentityFile ~/.foo/identity
Run Code Online (Sandbox Code Playgroud)

man ssh_config 找到其他配置选项.

  • 另请注意,您可以多次为多个键列出此参数.但是,列出太多密钥(通常> 4)可能会导致auth失败,然后在密钥无效的系统上提示输入密码.ssh-agent或keychain(http://www.gentoo.org/proj/en/keychain/)在这里很有帮助. (3认同)

roo*_*roo 19

man ssh 给我这个选项可能会有用.

-i identity_file选择从中读取RSA或DSA身份验证的标识(私钥)的文件.对于协议版本1,默认值为〜/ .ssh/identity,对于协议版本2,默认值为〜/ .ssh/id_rsa和〜/ .ssh/id_dsa.也可以在配置中基于每个主机指定身份文件文件.可以有多个-i选项(以及配置文件中指定的多个标识).

所以你可以在你的bash配置中创建一个别名

别名ssh ="ssh -i/path/to/private_key"

我没有查看过ssh配置文件,但是像-i选项一样,这也可能是别名

-F configfile指定备用的每用户配置文件.如果在命令行上给出了配置文件,则将忽略系统范围的配置文件(/ etc/ssh/ssh_config).每用户配置文件的默认值为〜/ .ssh/config.