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

Mac端SSH认证失败:需用密码而非RSA密钥登录远程Linux服务器

解决Mac上SSH优先用密钥导致密码登录失败的问题

我之前也碰到过一模一样的情况——Mac自带的OpenSSH客户端默认会优先尝试本地的RSA/ED25519等密钥文件(比如~/.ssh/id_rsa)进行认证,只有当密钥认证完全失败后才会 fallback 到密码登录。而你遇到的情况是,客户端直接用了不合适的密钥去尝试,导致认证失败,还没走到输密码那一步——这也是为什么Windows的Xshell能正常用密码登录,因为Xshell默认会先确认认证方式,或者直接走密码流程。

给你几个实用的解决方案:

1. 临时强制密码登录(单次生效)

在ssh命令里加上两个参数,直接禁用公钥认证、指定优先用密码:

ssh -v -p 10022 -o PreferredAuthentications=password -o PubkeyAuthentication=no qhdxliy@42.123.106.11
  • PubkeyAuthentication=no:直接关掉公钥认证,不让客户端碰本地密钥
  • PreferredAuthentications=password:明确告诉客户端优先用密码认证

运行这个命令后,你应该就能看到熟悉的密码输入提示了。

2. 配置专属SSH规则(永久生效)

如果不想每次都敲这么长的命令,可以给这个服务器单独配置SSH规则:

  1. 打开终端,编辑(没有就创建)本地SSH配置文件:
nano ~/.ssh/config
  1. 添加以下内容:
Host 42.123.106.11
    Port 10022
    User qhdxliy
    PreferredAuthentications password
    PubkeyAuthentication no
  1. 保存退出(nano里按Ctrl+O,回车确认,再Ctrl+X退出)。

之后你只需要输入ssh 42.123.106.11,就会自动用密码登录,不用再输端口和用户名了。

3. 额外检查(可选)

虽然你用Xshell能正常登录,说明服务器端的密码认证是开着的,但如果上面的方法还是不行,可以确认一下服务器的sshd_config:

  • 用Xshell登录服务器,编辑/etc/ssh/sshd_config
  • 确保PasswordAuthentication yes这一行没有被注释掉
  • 重启sshd服务:sudo systemctl restart sshd(CentOS等老发行版用service sshd restart)

不过这个步骤大概率不需要,毕竟Xshell已经能正常用密码登录了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 02:29:12