默认情况下,ssh会在〜/ .ssh文件夹中查找其键.我想强迫它总是在另一个地方看.
我正在使用的解决方法是将密钥从非标准位置添加到代理:
ssh-agent ssh-add /path/to/where/keys/really/are/id_rsa
(在Windows上的Linux和MingW32 shell上)
如果您只想指向身份文件的其他位置,则可以使用以下条目修改〜/ .ssh/config文件:
IdentityFile ~/.foo/identity
man ssh_config
找到其他配置选项.
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.