是否可以在启动后直接在远程服务器上获得登录提示?

是否可以在启动后直接在远程服务器上获得登录提示?

连接到远程计算机的通常工作流程如下:

  1. 登录本地机器
  2. 启动终端窗口
  3. 输入“ssh[电子邮件受保护]
  4. 登录远程机器

我想摆脱本地登录,并将其压缩为一个步骤。就像 VT220 终端一样。预期工作流程:

  1. 启动终端机(文本模式)
  2. 用户收到带有登录提示的 tty
  3. 用户输入其凭据
  4. 凭据在远程计算机 (r.lan) 上进行验证
  5. 用户将远程计算机 (r.lan) 放入 shell

上下文:我正在设计一个简单的终端应用程序,我希望一些客户使用它。该应用程序应从具有最少硬件的专用终端运行。如果我在本地运行应用程序,我只需更改登录 shell 以指向应用程序并获得所需的工作流程(用户身份验证然后直接放入应用程序)。但是,我希望此应用程序驻留在服务器上,而不是让用户与本地计算机和 ssh 显式交互。

答案1

当我在科技大学学习时(1997 年左右),当地学生会收到了一些旧的 VT220 终端和低规格 PC(例如 Intel 20 MHz 386 CPU)作为捐赠(来自大学的计算中心,我)思考)。行会室已经有一两台可以运行网络浏览器的电脑,但学生们最需要的服务只是一个 SSH 连接,可以用来阅读电子邮件和使用(基于文本的)课程注册系统。

我将终端连接到 PC,配置进程getty以显示hostname:提示而不是通常的login:.然后我拿了源代码/bin/login并做了一个修改版本。

该程序将接受作为命令行参数输入的主机名getty(就像通常的用户名一样),然后提示输入实际用户名,然后是exec()所需远程主机的 SSH 命令。当 SSH 命令退出时,整个“登录会话”将终止,该过程将自动重新开始,就像init重新启动一样getty

相同的配置可用于本地控制台和串行终端连接。现在,每台旧 PC 都可以用作多座 SSH 信息亭!

您可以执行类似的操作,但更简单,因为您不需要主机名提示步骤。您的修改/bin/login只需要接受已经输入的用户名并启动到特定远程计算机的 SSH 连接。然后 SSH 客户端将显示密码提示。

相关内容