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、実際にログアウトできます(それ以外の場合はシェルが再起動されます)。

関連情報