You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

配置SSH公钥后仍需输入密码?Vultr VPS免密登录故障求助

解决SSH免密登录未匹配配置文件的问题

我看了你的问题描述和调试日志,核心问题很明确:当你直接用IP地址ssh root@198.13.59.103连接时,SSH没有匹配到你~/.ssh/config里的vultr Host配置块,所以它只会尝试默认的密钥文件(id_rsa、id_dsa等),而不会自动使用你指定的id_rsa_vultr密钥,这就是为什么你必须加-i参数才能成功登录。

为什么会这样?

SSH配置文件里的Host字段是用来匹配你在命令行输入的目标别名/主机名的。你配置里的Host vultr意味着:只有当你输入ssh vultr时,SSH才会加载这个块里的所有配置(包括IdentityFile ~/.ssh/id_rsa_vultr)。而你直接输入IP地址的话,SSH找不到对应的Host条目,就会走默认逻辑。

解决方法(任选其一即可)

方法1:使用配置里的Host别名连接

最简单的方式就是直接用你定义的别名连接:

ssh vultr

这样SSH会自动读取vultr Host块的配置,使用root用户、指定的IP和id_rsa_vultr密钥,无需额外参数。

方法2:修改SSH配置,让IP也匹配到vultr块

如果你习惯用IP地址连接,可以修改Host字段,让它同时匹配别名和IP:

Host vultr 198.13.59.103
    HostName 198.13.59.103
    Port 22
    User root
    IdentityFile ~/.ssh/id_rsa_vultr

这样不管你输入ssh vultr还是ssh root@198.13.59.103,SSH都会加载这个配置块,自动使用正确的密钥。

方法3:临时指定配置文件和Host(不推荐,较繁琐)

如果你不想修改配置,也可以在命令行强制指定使用vultr的配置:

ssh -F ~/.ssh/config vultr

验证配置是否生效

你可以用ssh -G命令查看SSH会使用的配置参数,比如:

# 查看用IP连接时的配置
ssh -G root@198.13.59.103 | grep identityfile
# 查看用vultr别名连接时的配置
ssh -G vultr | grep identityfile

对比两者的输出,就能确认配置是否正确匹配。

内容的提问来源于stack exchange,提问作者gy134340

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 08:45:32