Como logar usuário to tty de ssh?

1

Eu iniciei a máquina linux na tela de login do console. Agora eu conecto a essa máquina via ssh e eu quero registrar o usuário no tty exibido. Basicamente eu quero ignorar o prompt de login no console e ir para o shell.

No entanto, o que eu não quero é o login automático na inicialização, eu quero disparar manualmente o login via ssh.

Como fazer isso?

    
por graywolf 05.08.2017 / 12:50

2 respostas

3

openvt (a.k.a. open ) executa um determinado programa em um dado tty . O programa padrão é o seu shell. O tty padrão é o primeiro disponível. Se você quiser usar um tty específico, certifique-se de que ele ainda não esteja em uso (por getty ou uma sessão X, por exemplo). O melhor é usar o padrão e alternar para o terminal com a opção -s .

# openvt -l -s
    
por 05.08.2017 / 15:52
0

Você pode configurar um getty para autologin, desabilitar este e iniciá-lo via SSH:

systemctl cat getty@tty4 lhe dá saída assim (o openSUSE Tumbleweed aqui):

[Service]
# the VT is cleared by TTYVTDisallocate
ExecStart=-/sbin/agetty --noclear %I $TERM
Type=idle
Restart=always
RestartSec=0
UtmpIdentifier=%I
TTYPath=/dev/%I
TTYReset=yes
TTYVHangup=yes
TTYVTDisallocate=yes
KillMode=process
IgnoreSIGPIPE=no
SendSIGHUP=yes

Você precisa substituir algumas dessas configurações:

systemctl cat getty@tty4

[Service]
ExecStart=
ExecStart=-/sbin/agetty --autologin username --noclear %I $TERM
ExecStartPost=/usr/bin/chvt 4
KillMode=none

Em seguida, você o desativa: systemctl disable getty@tty4

Por SSH você corre:

systemctl start getty@tty4 ; systemctl stop getty@tty4

O stop garante que você possa realmente efetuar logout (caso contrário, o shell será reiniciado).

    
por 05.08.2017 / 16:14