Mac 远程控制键盘失灵,鼠标正常?一次离奇的 RustDesk / ToDesk 故障排查记录

最近遇到一个比较奇葩的问题:

Mac mini 使用 RustDesk / ToDesk 远程控制时,鼠标可以正常操作,键盘却完全无法输入。更要命的是,Mac 正好停留在锁屏界面,连登录密码都输不了。

折腾了一番后,最终莫名其妙地恢复了。查资料时还发现了另一个可能导致类似现象的原因:macOS 的 Secure Input(安全输入)机制。

这里把两种情况和对应的解决办法整理一下,希望能帮到遇到相同问题的人。

一、故障现象

我的环境:

  • 被控设备:Mac mini
  • 远程控制软件:RustDesk、ToDesk
  • 故障表现:鼠标正常,键盘无法输入
  • 特殊情况:Mac 处于锁屏状态,无法输入密码解锁

远程连接本身没有问题,鼠标移动、点击都很正常,但键盘就是没有反应。

这就很尴尬了。

毕竟平时还能打开终端排查,偏偏现在连桌面都进不去。

二、先排查 Secure Input(安全输入)

在 Linux.do 上看到另一位网友分享了类似的经历。

他一开始以为是 Mac 权限出了问题,反复调整权限、重启电脑,甚至换了一套键盘,依然没有解决。

后来发现,向日葵远程控制的键盘输入正常,而其他远程软件存在问题。

经过排查,最终怀疑到了 macOS 的 Secure Input(安全输入)机制。

1. Secure Input 是什么?

Secure Input 是 macOS 提供的一种安全输入机制。

当某个程序启用安全输入时,系统会限制其他进程对键盘输入事件的监听,防止密码等敏感内容被键盘记录程序窃取。

一些可能涉及 Secure Input 的软件包括:

  • 终端工具,例如 Terminal、iTerm2

  • 密码管理器,例如 1Password

  • 需要处理敏感输入的应用程序

  • 某些开发工具或其他启用了安全输入的程序

正常情况下,程序完成敏感输入后应该及时释放 Secure Input。

但如果程序异常退出、状态处理有问题,或者一直保持安全输入状态,就可能导致部分远程控制软件无法正常处理键盘输入。

需要注意,Secure Input 并不意味着系统会彻底禁用所有第三方程序的键盘输入。实际影响取决于应用获取和注入键盘事件的方式。

2. 检查是否存在 Secure Input 占用

打开 Mac 终端,执行:

1
ioreg -l -w 0 | grep -i SecureInput

如果出现类似下面的结果:

1
"kCGSSessionSecureInputPID" = 12345

就说明可以进一步调查 PID 对应的进程。

使用:

1
ps -p 12345 -o pid,comm,args

查看具体是什么软件。

需要特别注意:不同 macOS 版本的相关字段可能存在差异,而且出现 Secure Input 字段,也需要结合具体数值判断是否处于启用状态。

3. 解决 Secure Input 占用

定位到具体进程后,可以先正常退出对应软件。

如果软件已经卡死,可以通过活动监视器强制退出,或者使用:

1
kill 12345

必要时再考虑:

1
kill -9 12345

操作之前记得确认 PID 对应的进程,避免误杀其他程序导致数据丢失。

原帖作者最终发现,是一个名为“反重力”的程序占用了 Secure Input。

结束该程序后,使用快捷键:

Control + Command + Q

重新锁定 Mac,等待几秒,再输入密码登录。

登录后再次执行:

1
ioreg -l -w 0 | grep -i SecureInput

确认异常占用已经消失。

之后重新打开 ToDesk 和 RustDesk,键盘恢复正常。

帖子下方还有网友反馈,关闭 1Password 后,远程键盘也恢复了正常。

所以如果遇到类似问题,Secure Input 确实值得优先排查。

三、我的情况更离谱:Mac 卡在锁屏界面

上面的方法有一个前提:

你至少还能进入 Mac 桌面,或者通过 SSH 执行命令。

但我的情况更加尴尬。

Mac mini 已经锁屏,RustDesk 和 ToDesk 都能够正常连接,鼠标也能操作,唯独键盘没有任何反应。

结果就是,连密码都没办法输入。

查找资料后,整理出以下几种可能的解决方案。

方法一:使用 macOS 自带的虚拟键盘

macOS 实际上自带一套类似 Windows 屏幕键盘的辅助功能,叫作:

Accessibility Keyboard(辅助功能键盘)

如果登录界面提供辅助功能入口,可以尝试:

  1. 在锁屏或登录界面找到辅助功能图标,通常是一个小人形状的按钮。

  2. 用鼠标点击。

  3. 找到 Accessibility Keyboard。

  4. 启用屏幕键盘。

  5. 使用鼠标点击虚拟键盘上的字符输入密码。

这样即便远程键盘失灵,也有机会通过鼠标完成解锁。

不过这个方法有一定限制,相关入口可能需要提前启用,具体显示情况也会因 macOS 版本和登录状态有所不同。

方法二:切换 RustDesk 的键盘输入模式

如果使用 RustDesk,可以尝试切换键盘输入源。

操作步骤:

  1. 打开 RustDesk 远程控制窗口。

  2. 在上方工具栏找到键盘相关选项。

  3. 找到 Input Source(输入源)。

  4. 尝试在 Input Source 1 和 Input Source 2 之间切换。

  5. 重新点击远程 Mac 的密码框,测试能否输入。

不同版本 RustDesk 的菜单可能有所区别。

某些 macOS 键盘输入故障与 RustDesk 的输入事件处理方式有关,切换输入源有机会绕过问题。

方法三:通过其他远程工具或 SSH 解锁

如果 Mac 提前配置了 SSH 或屏幕共享,可以考虑换一条连接通道。

例如使用:

1
ssh 用户名@Mac的IP地址

连接到 Mac,检查 Secure Input 的占用情况,并尝试正常退出相关程序。

也可以使用 macOS 屏幕共享或其他远程控制软件,看看键盘输入是否正常。

原帖作者就发现向日葵能够正常输入,而其他远程软件出现了故障。

这也是一个很有价值的排查思路:同一台 Mac,如果只有部分远程软件不能输入,可以优先调查远程软件的输入机制和 Secure Input 状态。

四、我的最终解决方式:切换了一下用户,居然进去了

前面这些方法,我都没能成功解决。

因为 Mac 已经锁屏,而且登录界面没有看到可用的虚拟键盘入口。

正准备放弃时,突然想到:

我这台 Mac mini 上登录了两个用户。

一个是我的账号,另一个是 IT 的账号。

于是,我用鼠标在锁屏界面点了一下 IT 的账号,准备尝试切换用户。

神奇的事情发生了。

明明那个账号也是有密码的,我都准备去找 IT 要密码了,结果不知道是系统界面卡住了,还是用户会话切换过程中出现了什么异常,画面居然直接回到了我自己账号的桌面。

当时键盘仍然无法输入,但至少已经能进入桌面操作了。

随后我尝试断开并重新连接远程控制软件,反复重连了几次。

结果,键盘突然恢复正常了。

整个过程相当玄学。

目前没能确认到底是什么机制让系统恢复了正常,可能与用户会话切换、远程输入状态重新初始化等因素有关。

也没有证据表明,我遇到的问题一定是 Secure Input 导致的。

总之,这次算是通过切换用户和重新连接远程软件,意外恢复了键盘输入。

五、如何预防下一次被锁在 Mac 外面?

经历这次故障后,我觉得有几项设置非常值得提前做好。

1. 提前启用登录界面的辅助功能键盘

进入:

系统设置 → 锁定屏幕 → 辅助功能选项

如果系统版本提供 Accessibility Keyboard 选项,建议提前启用。

这样即便远程键盘再次失效,还有机会通过鼠标输入密码。

2. 开启 SSH,作为备用维护通道

进入:

系统设置 → 通用 → 共享 → 远程登录

开启远程登录,并限制允许访问的用户。

这样即便远程桌面出了问题,仍可以通过 SSH 检查进程、查看系统日志。

当然,SSH 也要做好网络隔离和身份验证,尽量只通过局域网或 VPN 访问。

3. 保留第二套远程控制方案

如果设备需要长期无人值守,建议提前准备至少两种远程访问方式。

例如:

  • RustDesk 作为主要远程控制工具。

  • macOS 屏幕共享或其他远程工具作为备用。

  • SSH 负责命令行排障。

如果一种工具的键盘事件处理出现异常,另一种工具可能仍然可用。

4. 留意 Secure Input 的异常占用

特别是平时长期运行终端、IDE、密码管理器等软件的 Mac。

如果某天突然发现远程键盘无法使用,可以先执行:

1
ioreg -l -w 0 | grep -i SecureInput

检查相关状态,再结合进程信息逐步定位。

六、总结

排查方向建议操作
Secure Input 异常占用使用 ioreg 检查,定位 PID,退出相关程序
RustDesk 输入兼容问题切换 Input Source 1 / 2
锁屏界面无法输入尝试 macOS 辅助功能键盘
某个远程软件失效尝试另一种远程连接方式
用户会话状态异常尝试正常切换用户并重新连接
无法进入桌面排查提前配置 SSH 作为备用入口

我的这次故障最终通过切换用户和多次重连恢复,根因仍然未知。

也欢迎遇到相同问题的朋友分享一下自己的解决方法,尤其是有没有人能解释,为什么切换了一下用户,原本无法进入的桌面就突然出现了。

这次算是给常年远程使用 Mac mini 的自己提了个醒:无人值守设备,一定要提前准备备用控制通道。