Da minha caixa Windows, eu me conecto à minha caixa Linux usando VNC
o visualizador/servidor.
Na caixa do Linux, quando minha sessão expira e depois que a tela de bloqueio é ativada, se eu tentar desbloquear usando o gui, pelo VNC, pareço estar permanentemente "bloqueado" sem a capacidade de inserir qualquer texto no solicitação de senha. Mais especificamente, parece que algum fluxo de Enter
caracteres está sendo constantemente transmitido pelo VNC, acionando o prompt de login para pensar que o usuário está digitando constantemente uma senha de comprimento 0: observe a instrução "Erro de autenticação" na captura de tela anexa, revelando que o tela de login pensa que algo foi inserido. Além disso, se eu fizer um teste de estresse aqui, digitando rapidamente, um ou dois dos sÃmbolos de "caractere oculto" aparecerão antes de desaparecer rapidamente novamente. O tempo todo, o "erro de autenticação"
A solução que encontrei para essa situação é fazer login diretamente na caixa do Linux e executar este script:
$ while true; do loginctl unlock-session 2 > /dev/null 2>&1; sleep 1; done
...onde esse número, 2
, é meu "id de sessão". O script tem o efeito de descartar a tela de bloqueio (dentro de um segundo) sempre que ela aparecer - não exatamente a melhor solução, mas melhor do que um bloqueio perpétuo com a incapacidade de inserir uma senha.
Por que isso é necessário? Alguém pode explicar o que está acontecendo com o VNC
visualizador/servidor, ou a tela de bloqueio na caixa do Linux, ou qualquer outro software relacionado, e por que aparece um fluxo constante de Enter
ser enviado VNC
especificamente para a tela de login do Linux (ou qualquer outra coisa que esteja acontecendo fazer com que a tela de bloqueio relate continuamente "Erro de autenticação" como se uma senha incorreta fosse fornecida)?
Observe que quando estou passando a tela de bloqueio, em um bash
shell, não parece haver nenhum pressionamento de tecla indesejado enviado - ou seja, posso digitar, executar comandos, etc. sem interferência de nenhum pressionamento de tecla não intencional.
Pergunta relacionada(?): Se isso não estiver atrapalhando o assunto: observe que o script que executo está em primeiro plano, ou seja:
$ while true; do loginctl unlock-session 2 > /dev/null 2>&1; sleep 1; done
...não...
$ while true; do loginctl unlock-session 2 > /dev/null 2>&1; sleep 1; done &
... se eu tentar a versão em segundo plano do script, ela tem um efeito único, ou seja, a tela de bloqueio é descartada apenas na primeira execução, mas nunca depois, versus a versão em primeiro plano do script, que parece manter a tela de bloqueio fora perpetuamente. Por que faz diferença, nesse contexto, se o script de solução alternativa está em segundo plano ou em primeiro plano?
Detalhes do ambiente:
$ 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.
O Gnome parece estar ciente desse bug. Você pode ver a evolução do problema aqui https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2196