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).