Mac 远程连接失败:ssh: connect to host localhost port 22: Connection refused
Mac 远程连接
ssh homer@localhost
提示失败:ssh: connect to host localhost port 22: Connection refused
解决方法
方法1:系统偏好设置(重启电脑后失效,需重新配置)
1)依次打开,Mac设置 ——》 偏好设置 ——》 共享
2)开启远程连接 ——》选择所有用户,如下图:
方法2:命令行设置(重启电脑后失效,需重新配置)
$ sudo systemsetup -getremotelogin
Remote Login: Off
$ sudo systemsetup -setremotelogin on
setremotelogin: remote login is already On.
方法3:开机启动配置(推荐,实现了开机自动开启方法1)
修改 /System/Library/LaunchDaemons/ssh.plist 中的 Disabled 为 false
因为 ssh.plist 有 Apple SIP 保护,所以修改 ssh.plist 比较麻烦,修改步骤如下:
1)查看 ssh.plist 是否有 SIP 保护
ls -lO /System/Library/LaunchDaemons/ | grep ssh.plist
-rw-r--r-- 1 root wheel restricted,compressed 988 10 25 09:08 ssh.plist
上面字段包含了 restricted 表示有SIP强制保护
SIP保护机制,可以在安全模式下(Recovery OS),通过命令 csrutil enable 和 csrutil disable 设置开关
利用命令,查看系统是否开启了SIP机制,详见苹果官网文档
csrutil status
System Integrity Protection status: enabled.
2)重启,进入安全模式(Recovery OS)
To enable or disable System Integrity Protection, you must boot to Recovery OS and run the csrutil(1)
command from the Terminal.
-
Boot to Recovery OS by restarting your machine and holding down the Command and R keys at startup.
-
Launch Terminal from the Utilities menu.
-
Enter the following command:
$ csrutil disable
After enabling or disabling System Integrity Protection on a machine, a reboot is required.
3)设置开机启动ssh脚本
核心是修改 /System/Library/LaunchDaemons/ssh.plist 中的 Disabled 为 false
a)按照步骤2)重启Mac,启动时同时按下按键 Command + R ,进入安全模式
b)打开 Utilities menu ——> 终端,输入禁用SIP命令:csrutil disable
c)然后,重启Mac,正常进入Mac,因为在安全模式里无法修改 ssh.plist 权限和内容
d)修改ssh.plist 权限为可写入,执行命令:
sudo chmod 777 /System/Library/LaunchDaemons/ssh.plist
e)修改 /System/Library/LaunchDaemons/ssh.plist 中的 Disabled 为 false,如下:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Disabled</key> <false/> <key>Label</key> <string>com.openssh.sshd</string> <key>Program</key> <string>/usr/libexec/sshd-keygen-wrapper</string> <key>ProgramArguments</key> 。。。。。。
接着,设置开机启动ssh脚本
sudo launchctl unload -w /System/Library/LaunchDaemons/ssh.plist
sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist
f)恢复 ssh.plist 权限
sudo chmod 644 /System/Library/LaunchDaemons/ssh.plist
g)重启Mac,Command + R 进入安全模式,恢复SIP保护命令:csrutil enable
h)然后,重启Mac,正常进入Mac,查看是否开机自动开启远程登录了
结果是开机Mac、重启Mac,都会自动开启远程登录,即实现了方法1
参考推荐:
版权所有: 本文系米扑博客原创、转载、摘录,或修订后发表,最后更新于 2018-05-21 05:08:15
侵权处理: 本个人博客,不盈利,若侵犯了您的作品权,请联系博主删除,莫恶意,索钱财,感谢!
转载注明: Mac 远程连接失败:ssh: connect to host localhost port 22: Connection refused (米扑博客)
不错,谢谢分享,已收藏