Linux Ubuntuでサービスが停止しても、Linux SSH(バグ/破損)は引き続き機能しますか?

Linux Ubuntuでサービスが停止しても、Linux SSH(バグ/破損)は引き続き機能しますか?

全体のシーンは次のとおりです。

  1. SSH インストール apt-get インストール SSH
  2. 新しいユーザーを作成しました。 (これを行う必要がないことを知っています。)
  3. 新しいユーザーを使用してSSH経由でシステムにログインする
  4. root ログインを許可するように /etc/ssh/sshd_config を変更します。
  5. systemctl status ssh コマンドを実行します。
  6. サービスが実行されていることを示します。
  7. systemctl stop sshの実行(サービスcmdが利用可能であることを知っています)
  8. まだSSHでログインしています!これがどのように機能するのかわかりません。
  9. 新しいパテインスタンスを開いて接続しようとしましたが、サービスに接続できなかったかタイムアウトしたことが表示されます。
  10. systemctl start sshを実行し、新しいパテインスタンスを使用してユーザーとしてログインしようとすると成功します。

なぜ最初のインスタンス(sshを介してログインした新しいユーザー)を解放しなかったのか疑問に思います。初めてログインしたとき、sshはポート22で接続を受け入れ、新しいWebソケットポート(マルチスレッド)を開き、そのポートに自分の接続を割り当て、ポート22で別の接続をリッスンしていたためです。接続してログインするときにサービスが停止した後にタイムアウトと言われますか?

私はsshが自分が開く任意のポートを追跡しないと確信しています。これはおそらくバグ(壊れていない)と言うことができます。 Cプログラムもsshを追跡し、sshサービスが停止したらインスタンスを削除する必要はありませんか?どんなアイデアがありますか?

ベストアンサー1

これは意図的なものです。 SSHを使用してシステムに接続すると、ターゲットシステムのデーモンは新しいプロセスまたはsshd2つのプロセス(1つはターゲットユーザーとして実行され、rootもう1つはターゲットユーザーとして実行されます)を作成します。 SSHセッションは、元のプロセスではなく、この新しいプロセスによって処理されます。マンページから:

sshdクライアントの接続を受信します。通常、起動時に起動されます/etc/init.d/ssh(または /etc/init/ssh.confUpstart initデーモンを使用するシステムでは)。着信接続ごとに新しいデーモンを作成します。分岐されたデーモンは、鍵交換、暗号化、認証、コマンド実行、およびデータ交換を処理します。

サービスを停止すると、デフォルトのデーモンのみが停止し、セッションを管理するデーモンは引き続き実行されます。これにより、セッションを失うことなくSSHサーバーを再起動できます。これは、誤って設定してサーバーを再起動できない場合に特に便利です。

おすすめ記事