默认情况下,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
查找其他配置选项。
ssh-add your-private-key
命令添加私钥,否则它将始终要求输入密钥密码。 - Pengfei.Xman ssh
给出了一些有用的选项。
-i identity_file 选择一个文件,从中读取用于RSA或DSA身份验证的标识(私钥)。 协议版本1的默认值为~/.ssh/identity,协议版本2的默认值为~/.ssh/id_rsa和~/.ssh/id_dsa。 标识文件也可以在配置文件中按主机指定。 可以使用多个-i选项(以及在配置文件中指定多个标识)。
所以您可以在bash配置中创建一个别名,例如
alias 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 变量)。如果此变量指向不存在的位置,则 Git Bash 可能永远不会打开。
与 Linux 一样,Git Bash 应用程序将在 %HOME%\.ssh
中查找其 config
文件。
例如,如果您将 HOME 设置为 C:\Users\Yourname
,则它将查找 C:\Users\Yourname\.ssh
最后,在 config 文本文件中,Git Bash 将查找 IdentifyFile
路径。在 Windows 上,使用 cygwin 符号设置路径。
例如,设置为 /e/var/www/certs/keys/your_passwordless_key.key
额外福利:免费的 PHPStorm 将使用该设置。如果您刚刚更改了设置,请重新启动 IDE。