起動後にリモートサーバーから直接ログインプロンプトを受信できますか?

起動後にリモートサーバーから直接ログインプロンプトを受信できますか?

リモートコンピュータに接続する一般的なワークフローは次のとおりです。

  1. ローカルコンピュータにログイン
  2. ターミナルウィンドウの開始
  3. 「sshと入力してください。[Eメール保護]
  4. リモートコンピュータにログイン

ローカルログインをなくしてワンステップで圧縮したいです。 VT220端末と同じです。予想されるワークフロー:

  1. ターミナル起動(テキストモード)
  2. ユーザーはログインプロンプトでttyを受け取ります。
  3. ユーザーが資格情報を入力します。
  4. 資格情報はリモートシステム(r.lan)で確認されます。
  5. ユーザーはリモートコンピュータ(r.lan)をシェルに配置します。

コンテキスト:私はいくつかのクライアントが使用したいシンプルなターミナルアプリケーションを設計しています。アプリケーションは、最小限のハードウェアを備えた専用端末で実行する必要があります。アプリケーションをローカルで実行している場合は、アプリケーションを指すようにログインシェルを変更して、必要なワークフローをインポートします(ユーザー認証をアプリケーションに直接追加します)。しかし、私はユーザーがローカルシステムやSSHと明示的に対話するのではなく、このアプリケーションをサーバーに常駐させたいと思います。

ベストアンサー1

私が工科大学で勉強したとき(1997年頃)、地元の学生会では、古いVT220ターミナルと低仕様PC(Intel 20MHz 386 CPUなど)を寄付しました(大学計算センターから送られたようです)。ギルドルームにはすでにWebブラウザを実行できるコンピュータが1〜2台ありますが、学生にとって最も重要なサービスは、電子メールを読んで(テキストベースの)受講登録システムを使用するためのSSH接続です。

端末をPCに接続し、一般的なプロンプトの代わりにプロンプ​​トをgetty表示するようにプロセスを設定し、ソースコードを変更したバージョンを作成しました。hostname:login:/bin/login

プログラムは、コマンドライン引数として入力されたホスト名getty(通常のユーザー名と同様)を受け入れてから、実際のユーザー名を求めるプロンプトを出し、目的のリモートホストのexec()SSHコマンドを入力します。 SSHコマンドが終了すると、「ログインセッション全体」が終了し、プロセスが再開されたかのinitように自動的に再起動されますgetty

ローカルコンソールとシリアル端末の接続にも同じ設定を使用できます。これで、すべての古いPCを複数のSSHキオスクとして使用することができます!

同様の操作を実行できますが、ホスト名のプロンプトステップは必要ないので、より簡単です。変更するには、/bin/loginすでに入力したユーザー名を受け入れて、特定のリモートコンピューターへのSSH接続を開始するだけです。これにより、SSHクライアントにパスワードプロンプトが表示されます。

おすすめ記事