SSH에서 tty에 사용자를 로그인하는 방법은 무엇입니까?

SSH에서 tty에 사용자를 로그인하는 방법은 무엇입니까?

콘솔 로그인 화면에서 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실제로 로그아웃할 수 있습니다(그렇지 않으면 쉘이 다시 시작됩니다).

관련 정보