`sshd`はログインアクティビティをどのように実行しますか?

`sshd`はログインアクティビティをどのように実行しますか?

~からhttps://unix.stackexchange.com/a/489913/674

SSHを使用して接続すると、ログインと見なされます。

~からプロセスを所有者として実行したり、ログインせずに所有者になる方法は?

関連していないSSHを使用した接続login

sshdログインアクティビティを実行するには?プログラムを呼び出すことloginはできませんか?

SSHは直接表示されませんが、APUEはどのように機能するかを示すダイアグラムを表示し、rlogin説明も提供します。

rlogindloginプログラムは通常2つの間でユーザーを認証するため、サーバーとログインシェルの間でexecへの2つの呼び出しを表示します。

まだログインが必要ですかsshdexec login

ありがとうございます。

ここに画像の説明を入力してください。

答え1

提供した図は、rloginユーザーに対話型シェルを提供する上位レベルのパスや他のネットワークベースのプロセスとほぼ同じです。telnetssh

接続を受け入れるデーモンは認証を行います。成功したら、対話型ユーザーセッションにptyを割り当て、ptyと通信する子(ユーザー)セッションを作成します。その後、デーモンはptyとネットワーク間の通信を処理します。

ログイン中、デーモンは他の管理機能(更新、lastlogin監査ログなど)も実行できます。一つあるutmpwtmpたくさん実行されたバックグラウンド操作の数。

sshdこれはさまざまな方法で設定できます。UseLoginユーザーセッションを作成するために使用できるパラメータがあります。デフォルトは「いいえ」です。

% sudo grep UseLogin /etc/ssh/sshd_config
#UseLogin no

yes(例:sshd_configでログインを使用する)

答え2

APUEは少し古くなったり、現代のLinuxユーザースペースには合いません(現代のLinux DistroではなくUNIXです)。

最新のLinuxディストリビューションでは、SSHサーバーはネットワーク経由でユーザーを認証し(セッション管理者と会話して)、ログインするセッションを作成します。リモートセッション(図の一部に示されています)は、ログインマネージャが入力データをネットワークソケットからptyマスターに渡すことによって機能するため、シェルはptyスレーブデバイスで動作できます。 Ptyはまったく異なるトピックです。

あなたの写真が実際に示しているのは、セッションマネージャがまったくなかった古いシステムです。 Stephenが他の答えで言ったように、これはまったく異なるタイプの「会話」を作成します。

最新のシステムでは、セッションは通常、管理ユーザーに簡単な構造を提供するセッションマネージャを介して作成されます。

関連情報