gpt4 book ai didi

linux - 让 SSH 登录 session 重定向到交互式 telnet 到本地主机

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:42:53 30 4
gpt4 key购买 nike

我正在开发一个具有交互式 telnet 管理控制台的系统。要求指示我们禁用 telnet 访问并添加 SSH。将管理控制台更改为可用于 SSH 登录的独立程序需要供应商参与。我在想一个更便宜的解决方案,就像这样:

  1. 阻止外部访问 telnet 管理控制台,但保持其运行以供本地主机连接使用。

  2. 编写一个用作代理的登录 shell(用 C++ 编写,或者可能像 this 一样简单)。登录 shell 将 telnet 到本地主机,并通过 telnet 发送它从用户那里接收到的所有命令,并将它从 telnet 服务器接收到的所有显示和提示发送回用户。

  3. 更改/etc/passwd 以在用户通过 ssh 登录时启动此代理 shell。

我想的有可能吗?有没有我会陷入的可怕陷阱?有更好的选择吗?我使用 OpenSSH 作为 ssh 守护进程。

最佳答案

将 Telnet 限制为本地连接听起来是个不错的计划,尤其是在您不想接触代码的情况下。不过,第 2 步和第 3 步是不必要的。建立连接后,您可以简单地在远程 shell 中调用“telnet”命令。这可以通过在用户的主目录中创建一个 .ssh/rc 脚本来自动完成。

但是这种方法的一个潜在问题是 Telnet 控制序列可能无法正确通过。因此,另一种方法是使用端口转发通过安全的 SSH 连接建立 Telnet 连接隧道。使用此策略,您将继续在客户端和服务器上运行 Telnet,但连接使用 SSH 加密。要进行设置,请像这样调用 SSH 客户端:

ssh -L 23:localhost:23 user@host

将“user@host”替换为 SSH 服务器的用户/主机。此命令的效果是客户端 框上的端口 23 (telnet) 将被打开。与它建立的连接将通过 SSH 转发到服务器 上的端口 23。因此,在您的客户端上,您将远程登录到本地主机,连接将被转发到运行在与 SSH 守护程序相同的机器上的远程登录服务器。

请注意,如果客户端的安全设置阻止您在那里使用端口 23,您可以将第一个“23”更改为其他内容(例如 1123)。在这种情况下,您会将您的 Telnet 客户端指向 localhost:1123 或其他任何内容,它将被转发到远程系统上的端口 23。红帽杂志有一个 good tutorial关于将 SSH 端口转发用于此类用例。

关于linux - 让 SSH 登录 session 重定向到交互式 telnet 到本地主机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1948097/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com