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