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

MacBook无法SSH连接localhost但可连接其他设备问题求助

嘿,我来帮你排查MacBook上SSH连不上localhost的问题!这种情况一般和本地SSH服务状态、配置或者端口权限有关,咱们一步步来解决:

1. 先确认SSH服务是否开启

首先得确保Mac的远程登录功能是打开的:

  • 终端里执行命令:sudo systemsetup -getremotelogin
    • 如果返回 Remote Login: Off,就用这条命令开启:sudo systemsetup -setremotelogin on
  • 也可以用图形界面操作:打开「系统设置」→「通用」→「共享」,勾选「远程登录」,并确认你的用户账号在允许访问的列表里。
2. 检查SSH服务的运行状态

有时候服务可能没正常启动,咱们验证一下:

  • 执行 launchctl list | grep sshd,如果能看到 com.openssh.sshd 的条目,说明服务在运行;
  • 如果没找到,手动加载并启动服务:sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist
3. 排查SSH配置文件问题

SSH的配置文件可能有错误导致无法本地连接:

  • 查看配置内容:cat /etc/ssh/sshd_config,重点关注这几个配置项:
    • Port 22:默认端口是22,如果你改了自定义端口,连接时要加 -p 自定义端口 参数
    • PermitRootLogin no:如果用root账号连接,这个配置会拒绝,建议用你的普通用户账号
    • AllowUsers 你的用户名:如果有这个配置,必须确保你的用户名在列表里,否则会被拒绝
  • 修改配置后,记得重启SSH服务生效:sudo launchctl stop com.openssh.sshd && sudo launchctl start com.openssh.sshd
4. 用 verbose 模式抓连接细节

如果上面的步骤都没解决,用 verbose 模式连接看具体报错:

  • 执行 ssh -v localhost,这条命令会输出详细的连接日志,比如是「连接被拒绝」(服务没开/端口错)还是「权限不足」(密钥/配置问题),根据日志里的错误提示针对性解决。
5. 检查端口占用和防火墙
  • 确认22端口有没有被其他程序占用:lsof -i :22,如果输出里不是 sshd 进程,就得关掉占用的程序,或者修改SSH的端口
  • 检查Mac防火墙:打开「系统设置」→「网络」→「防火墙」,确保「远程登录」在允许的应用/服务列表里,没有被防火墙阻止。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 07:32:09