Mac修改SSH端口需复制并编辑ssh.plist文件,在Sockets→Listeners中将SockServiceName改为新端口(如2222),禁用原服务后加载自定义plist,并在防火墙中手动放行该TCP端口,最后用ssh -p 2222连接验证。

Mac系统默认SSH端口为22,暴露在公网时极易被自动化脚本扫描并发起暴力破解,修改端口是阻断第一波攻击最直接有效的手段。
确认当前SSH服务状态
打开终端,执行:
sudo systemsetup -getremotelogin
若显示“Remote Login: On”,说明SSH已启用;若为Off,先运行 sudo systemsetup -setremotelogin on 开启。
注意:macOS的SSH服务由systemsetup管理,【不使用sshd_config文件】,这点和Linux服务器完全不同,改错路径将完全无效。
修改SSH监听端口
macOS不通过编辑 /etc/ssh/sshd_config 来改端口,而是修改系统LaunchDaemon配置:
第一步:复制原始plist文件并重命名
sudo cp /System/Library/LaunchDaemons/ssh.plist /Library/LaunchDaemons/ssh-custom.plist
第二步:编辑新plist文件
sudo nano /Library/LaunchDaemons/ssh-custom.plist
第三步:在
第四步:禁用系统自带SSH服务,只启用自定义版本
sudo launchctl unload /System/Library/LaunchDaemons/ssh.plist
sudo launchctl load /Library/LaunchDaemons/ssh-custom.plist
放行防火墙并验证监听
macOS自带防火墙需手动放行新端口:
打开「系统设置」→「网络」→「防火墙」→「防火墙选项」→ 勾选「启用防火墙」→ 点击「+」号 → 输入「2222」→ 选择「TCP」→ 添加。
执行命令验证端口是否生效:
sudo lsof -iTCP:2222 -sTCP:LISTEN
有输出即表示监听成功;无输出说明配置未生效或被防火墙拦截。
这一步操作起来很简单,直接把文件拖进去就行。
客户端连接测试
方法一:命令行连接(必须指定端口)
ssh username@your-mac-ip -p 2222
方法二:FinalShell/Xshell等图形客户端,新建连接时在「端口」字段明确填写2222,不能留空或填22。
【切勿关闭当前终端窗口】——新端口连通前,保留原SSH会话,否则可能彻底失联。











