콘솔 로그인 화면에서 Linux 시스템을 시작했습니다. 이제 SSH를 통해 컴퓨터에 연결되었으므로 표시된 tty에 사용자를 로그인하고 싶습니다. 기본적으로 콘솔의 로그인 프롬프트를 우회하고 쉘로 이동하고 싶습니다.
하지만 내가 원하지 않는 것은 시작 시 자동 로그인입니다. SSH를 통해 수동으로 로그인을 트리거하고 싶습니다.
어떻게 하나요?
답변1
openvt
(일명 open
) 주어진 tty
. 기본값은 tty
사용 가능한 첫 번째 항목입니다. 특정 항목을 사용하려면 tty
해당 항목이 이미 사용 중이 아닌지 확인해야 합니다( getty
예: X 세션에서). 기본값을 사용하고 -s
이 옵션을 사용하여 터미널로 전환하는 것이 가장 좋습니다 .
# openvt -l -s
답변2
자동 로그인을 위해 getty를 구성하고, getty를 비활성화하고 SSH를 통해 시작할 수 있습니다.
systemctl cat getty@tty4
다음 출력을 제공합니다(여기서는 openSUSE Tumbleweed).
[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
다음 설정 중 일부를 재정의해야 합니다.
systemctl cat getty@tty4
[Service]
ExecStart=
ExecStart=-/sbin/agetty --autologin username --noclear %I $TERM
ExecStartPost=/usr/bin/chvt 4
KillMode=none
그런 다음 비활성화합니다.systemctl disable getty@tty4
SSH를 통해 다음을 실행합니다.
systemctl start getty@tty4 ; systemctl stop getty@tty4
이렇게 하면 stop
실제로 로그아웃할 수 있습니다(그렇지 않으면 쉘이 다시 시작됩니다).