VNC
从我的 Windows 机器上,我使用查看器/服务器连接到我的 Linux机器。
在 Linux 机器上,当我的会话超时并且在锁定屏幕启动后,如果我随后尝试使用 gui 通过 VNC 解锁,我似乎被永久“锁定”而无法在密码提示。更具体地说,似乎某些Enter
字符流在 VNC 上不断流式传输,触发登录提示以为用户不断输入长度为 0 的密码:请注意所附屏幕截图中的“身份验证错误”语句,显示登录屏幕认为已输入某些内容。此外,如果我在这里进行压力测试,通过快速打字,“隐藏字符”符号中的一两个会出现,然后再次快速消失。一直以来,“身份验证错误”
我发现这种情况的解决方法是直接登录到 Linux 机器并运行此脚本:
$ while true; do loginctl unlock-session 2 > /dev/null 2>&1; sleep 1; done
...那个数字 ,2
是我的“会话 ID”。该脚本具有在出现时关闭锁定屏幕(在一秒钟内)的效果 - 这不是最好的解决方案,但比无法输入密码的永久锁定要好。
为什么这是必要的?有人可以解释VNC
查看器/服务器、Linux 机器上的锁定屏幕或任何其他相关软件发生了什么,以及为什么会出现一个持续不断的流,专门Enter
发送VNC
到 Linux 登录屏幕(或发生其他任何事情)使锁定屏幕不断报告“身份验证错误”,就好像提供了不正确的密码一样)?
请注意,当我通过锁屏时,在bash
shell 中,似乎没有发送任何不希望的击键 - 即我可以键入、执行命令等,而不会受到任何意外击键的干扰。
相关(?)问题:如果这不会使主题混乱:请注意我运行的脚本在前台,即:
$ while true; do loginctl unlock-session 2 > /dev/null 2>&1; sleep 1; done
...不是...
$ while true; do loginctl unlock-session 2 > /dev/null 2>&1; sleep 1; done &
...如果我尝试脚本的后台版本,它具有一次性效果,即锁定屏幕仅在第一次运行时被关闭,但此后再也不会与脚本的前台版本相比,这似乎保持锁屏永远消失。在这种情况下,为什么变通方法脚本是在后台还是前台会有所不同?
环境细节:
$ uname -a
Linux linuxbox 5.3.11-100.fc29.x86_64 #1 SMP Tue Nov 12 20:41:25 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
.
$ vncserver -list
TigerVNC server sessions:
X DISPLAY # PROCESS ID
:1 2958
.
$ loginctl list-sessions
SESSION UID USER SEAT TTY
2 1000 user seat0 tty2
1 sessions listed.
Gnome 似乎意识到了这个错误。您可以在这里查看问题的演变https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2196