安全键盘输入
又称:Secure Event Input、安全输入
发布于
定义
安全键盘输入是Mac上“终端”的一项设置,可以防止电脑或网络上的其他App检测和记录你在“终端”中键入的内容。它基于一种名为Secure Event Input的macOS机制,这种机制会阻止按键被传递给任何拦截键盘的进程。
你会通过两种方式遇到这项设置。要么是因为你会在终端中键入密码,所以自己打开了它;要么是某个键盘快捷键、文本扩展工具或按键说话的按键不再响应,你在查找原因时发现了它。
保护作用和副作用其实是同一回事。macOS无法分辨监视键盘的工具是有用的还是有害的,所以安全输入打开时,这些工具都收不到你的按键。
如何在“终端”中打开安全键盘输入
这项设置是Apple“终端”App中的一个菜单项。Apple在你使用前给出了一条提醒:确保其他App不需要来自“终端”的按键。
- 在Mac上打开“终端”App。
- 点按菜单栏中的“终端”。
- 选取“安全键盘输入”。
- 再次打开“终端”菜单,确认“安全键盘输入”旁边出现了勾号。有勾号表示它已打开。
如何关闭安全键盘输入
如果打开终端后,你的快捷键或文本片段不再起作用,请先检查这个菜单项。同一个菜单项可以打开和关闭这项设置。
- 将“终端”置于最前面。
- 点按菜单栏中的“终端”。
- 如果“安全键盘输入”有勾号,请选取它一次以去掉勾号。
- 如果你使用iTerm2,请点按菜单栏中的“iTerm2”,然后在那里选取“Secure Keyboard Entry”。那个菜单项是iTerm2自己的。
- 切换到另一个App,试一下之前不起作用的快捷键或片段。
什么是Secure Event Input?
Secure Event Input是这个菜单项背后的系统机制。Apple关于它的开发者说明,即技术说明TN2150,称这个功能是在Mac OS X 10.3中加入的,用于保护键盘输入,让键盘事件无法被键盘拦截进程截获。这份说明写于2007年,位于Apple的文档存档中,但它仍然是Apple自己对这一行为的解释。
App不需要菜单项也能使用它。Apple的说明称,标准密码栏只在必要时才保护键盘事件,也就是你在栏中键入的时候。终端中的安全键盘输入则不同,因为是你选择在平常打字时也让保护保持打开。
为什么键盘快捷键和文本扩展工具会不起作用?
在另一个App位于前台时还能对按键做出反应的工具,必须监视键盘。Apple的说明列出了进程做到这一点的几种方式,包括事件监听(event tap),并举出宏、无障碍工具和键盘自定工具作为有用的例子。文本扩展工具、全局快捷键和按住说话的按键都属于这一类。
这份说明随后指出了规则:只要有任何进程启用了安全事件输入,无论这个进程在前台还是后台,系统都会停止向任何拦截进程传递键盘事件。因此,一个让安全输入保持打开的App,可能会让整台Mac上的键盘工具失灵,而不只是在它自己的窗口里。Apple要求开发者只在需要时启用它,并在焦点移开时将其停用。
- 文本扩展:工具永远看不到你输入的缩写,所以什么都不会展开。
- 全局快捷键:另一个App监听的快捷键不起作用。
- 按键说话的按键:等待按键按下或松开的工具看不到这个动作。
- 按键重映射和宏工具:它们收不到本该更改或重放的按键。
iTerm2中的安全键盘输入
iTerm2是一款独立的终端App,不是Apple产品,它在“iTerm2 → Secure Keyboard Entry”下有自己的开关。iTerm2的文档说,启用后,操作系统会阻止你电脑上的其他程序看到你输入的内容,并且可能会停用其他程序中的全局快捷键。
iTerm2的常见问题列出了这个设置的另外两个影响。使用open命令时,App的窗口可能不会来到前台;常见问题称这是macOS的一项安全功能,用于在你输入敏感文本时防止App抢走键盘焦点。它还提到了Logitech鼠标的滚动问题。对于这两种情况,常见问题都建议关闭“iTerm2 → Secure Keyboard Entry”。
安全键盘输入值得一直开着吗?
这取决于你在终端里输入什么,以及你依赖哪些工具。如果你经常在提示符下输入密码或密钥,又不使用键盘工具,开着它对你没有任何影响。如果你依赖文本扩展工具、启动器快捷键或听写按键,只要它开着,这些就都会失效。
它也不是你唯一的保护。App在监控键盘之前,macOS会先征求你的许可,你可以在“系统设置 → 隐私与安全 → 输入监控”中查看这个列表。从列表中移除你不信任的App,可以保护每一个App,而不只是终端。
大家常问的问题。
终端中的安全键盘输入有什么作用?
Apple说,它可以防止你电脑上或网络上的其他App检测和记录你在终端中输入的内容。选取“终端 → 安全键盘输入”即可打开它,出现勾号表示已打开。
如何在Mac上关闭安全键盘输入?
打开“终端”,点按菜单栏中的“终端”,然后选取“安全键盘输入”,让勾号消失。在iTerm2中,这个项目位于iTerm2菜单下。
为什么我Mac上的文本扩展工具不工作了?
一个常见原因是安全输入。只要任何App启用了安全事件输入,macOS就会停止向监视键盘的工具传递按键,因此扩展工具永远看不到你输入的内容。请检查终端App中的“安全键盘输入”,并点按密码栏以外的地方。
为什么终端或iTerm2打开时,我的全局快捷键不起作用?
很可能是打开了安全键盘输入。iTerm2的文档说,它的这个设置可能会停用其他程序中的全局快捷键;Apple也提醒你,在打开它之前,先确认其他App不需要从终端获取按键。
安全事件输入和安全键盘输入是一回事吗?
安全事件输入(Secure Event Input)是macOS的一种机制,用于向键盘拦截进程隐藏按键。安全键盘输入是终端中的菜单项,iTerm2中也另有一个,它会在你在终端中输入时让这种保护保持打开。
密码栏会打开安全输入吗?
会。Apple的开发者说明说,标准密码栏只在必要时保护键盘事件,所以这种保护在你于密码栏中输入时生效。如果某个键盘工具不再响应,请点按密码栏以外的地方,然后再试一次。