更改通过 ssh 登录传递的私钥的顺序

更改通过 ssh 登录传递的私钥的顺序

服务器设置为接受三次登录尝试。系统ssh在选择正确的文件之前会检查三个身份文件。

ssh命令如下:

ssh -i ~/.ssh/username [email protected] -v

三个身份文件如下:

debug2: key: /path/to/.ssh/identity1 
debug2: key: /path/to/.ssh/identity2
debug2: key: /path/to/.ssh/identity3 
debug2: key: /path/to/.ssh/username

如何删除三个不正确的身份文件?我已经尝试从目录中删除它们,我也尝试~/.ssh/config 按如下方式更新:

Host xx.xx.xx.xxx  
User username  
IdentityFile ~/.ssh/username

我怎样才能ssh使用正确的身份文件?

答案1

看起来 ssh 正在尝试它所知道的所有身份。如果您只想尝试配置文件中指定的身份,请添加以下行

IdentitiesOnly = yes

到 .ssh/config 文件的主机部分。

这是相关部分ssh_config 手册页:

IdentitiesOnly 指定 ssh(1) 应该只使用 ssh_config 文件中配置的身份验证身份文件,即使 ssh-agent(1) 提供更多身份也是如此。此关键字的参数必须是“是”或“否”。此选项适用于 ssh-agent 提供许多不同身份的情况。默认值为“否”。

答案2

查看身份文件是否列出

ssh-add -l

如果没有,请添加

ssh-add ~/.ssh/username  

然后能够选择正确的身份文件

相关内容