我一直将我的 ssh 身份文件放在我的~/.ssh/
文件夹中。我那里可能有大约 30 个文件。
当我连接到服务器时,我将指定要使用的身份文件,例如
ssh -i ~/.ssh/client1-identity client1@10.1.1.10
但是,如果我不指定身份文件,而只需使用以下内容:
ssh user123@example.com
我收到错误
user123 的身份验证失败太多
我的理解是因为如果没有指定身份文件,并且ssh可以找到身份文件,那么它会尝试所有这些。
我也明白我可以编辑~/.ssh/config
文件并指定如下内容:
主机example.com PreferredAuthentications 键盘交互,密码
以防止该连接尝试已知身份文件。
所以,我想我可以将我的身份文件移到目录之外~/.ssh/
,或者我可以在配置文件中指定我想要禁用身份文件身份验证的每个主机,但是有什么方法可以告诉 SSH 默认不搜索身份文件?或者指定它将搜索的那些?
随着ssh -i <private key filename>
您可以指示ssh来使用额外的私钥来尝试验证。
文档并不清楚如何明确使用该密钥。
我想让我与公司网络的所有 SSH 连接都通过特定的跳转主机:
Host *.initech.biz
ProxyJump conclusions.initech.biz
Run Code Online (Sandbox Code Playgroud)
这意外地导致 SSH 尝试conclusions.initech.biz
无限跳转。
我怎样才能打破这个递归?
简短版本:如何禁用/覆盖默认的 SSH 身份文件位置~/.ssh/id_{rsa,dsa}
并强制SSH 使用另一个(第一个)?
长版:
我正在尝试使用 ssh 密钥访问设置gitolite。从我的客户端,我想使用我的默认~/.ssh/id_rsa
身份访问 gitolite-admin 存储库,而我已经创建了一个单独的身份~/.ssh/id_rsa_git
来访问普通存储库。
此外,我在以下位置创建了一个 SSH 别名~/.ssh/config
:
Host git
Hostname <servername>
User gitolite
ForwardX11 no
ForwardAgent no
GSSAPIAuthentication no
IdentityFile ~/.ssh/id_rsa_git
Run Code Online (Sandbox Code Playgroud)
现在,当我尝试以非管理员用户身份访问 gitolite 存储库时,我得到
$ ssh -v git true
OpenSSH_6.0p1 Debian-4, OpenSSL 1.0.1e 11 Feb 2013
debug1: Reading configuration data /home/jaap/.ssh/config
debug1: /home/jaap/.ssh/config line 105: Applying options for git
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options …
Run Code Online (Sandbox Code Playgroud)