默认情况下,ssh 将在 ~/.ssh 文件夹中查找其密钥。我想强迫它总是在另一个位置寻找。
我正在使用的解决方法是将非标准位置的密钥添加到代理:
ssh-agent
ssh-add /path/to/where/keys/really/are/id_rsa
(在 Linux 和 Windows 上的 MingW32 shell 上)
默认情况下,ssh 将在 ~/.ssh 文件夹中查找其密钥。我想强迫它总是在另一个位置寻找。
我正在使用的解决方法是将非标准位置的密钥添加到代理:
ssh-agent
ssh-add /path/to/where/keys/really/are/id_rsa
(在 Linux 和 Windows 上的 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。
Windows 10上的 Git Bash 更新:在我的系统上,git bash 应用程序将在 ssh 层(由OpenSSH提供)上工作,寻找一个名为HOME的环境变量(到 Windows 键并输入“env”以编辑 env vars)。如果这个变量指向一个不存在的地方,git bash 可能永远不会打开。
与 Linux 一样,Git Bash应用程序会config
在%HOME%\.ssh
.
例如,如果您将 HOME 设置为C:\Users\Yourname
,那么它将寻找C:\Users\Yourname\.ssh
最后,在配置文本文件中,git bash 将查找IdentifyFile
路径。在 Windows 上,使用 cygwin 表示法设置路径。
例如/e/var/www/certs/keys/your_passwordless_key.key
奖励:免费,PHPStorm 将使用该设置。如果您刚刚更改了设置,请重新启动 IDE。