telnet/telnet-server 是远程 shell 吗?

telnet/telnet-server 是远程 shell 吗?

出于安全原因,人们总是说使用 Secure Shell (SSH) 而不是 Telnet 或 rsh/rcp/rlogin。

SSH 和 rsh 都是远程 shell。我想知道 telnet 是否也是远程外壳?如果是,为什么它是远程 shell,或者我如何理解它是远程 shell?

远程 shell 的定义

远程 shell (rsh) 是一种命令行计算机程序,可以作为另一个用户在计算机网络上的另一台计算机上执行 shell 命令。

我查了一下telnet是如何使用的。我发现的是telnet 客户端可以连接到 telnet 服务器(当连接到 telnet 端口时)或另一个进程(当连接到 telnet 端口以外的端口时),它已经在服务器计算机上运行。我觉得telnet不行在服务器计算机上执行 ie 启动 shell 命令,它是远程 shell 定义的一部分。

当我寻找基于 UDP 的 telnet 替代方案时,有些人提到了这一点netcat,并且nc是这样的替代方案。如果我是对的,netcat并且nc双方都习惯了连接到机器上已运行的进程,但不至于执行 ie 在机器上启动一个进程。是否还表明telnet用于连接到机器上已运行的进程,但不至于执行 ie 在机器上启动一个进程

如果确实使用telnet连接到机器上已运行的进程,但不至于执行 ie 在机器上启动一个进程,既然 SSH 和 telnet 正在做不同的事情,为什么它与 SSH 相比呢?

谢谢。

附注

我才发现维基百科有关远程 shell 的文章似乎是针对特定程序rsh并且rshd.

我所说的“远程外壳” 在我的帖子中是一种程序或协议,可用于连接到远程计算机、在远程启动 shell 以及在 shell 中启动命令或程序。

答案1

telnet是在联网的 UNIX 机器上获取远程 shell 的传统方法。 rsh是另一个。 ssh相比之下,是一个相对较新的人。

telnet通常与远程 telnet 通信守护进程(或“服务器”进程)。此时,您使用用户名和密码进行身份验证以登录,然后您将获得一个 shell。所以,是的,这是一种获取远程 shell 的方法。

客户telnet端还可以通过指定另一个端口用于其他连接(例如telnet host 80与 Web 服务器通信);这不是远程 shell。telnet对话和身份验证的组合telnetd提供了远程 shell。

telnet不建议用于远程 shell,因为用户名和密码通常以纯文本形式通过网络传递;网络嗅探器或“中间人”攻击可以窃取您的密码。不好! ssh对流量进行加密以帮助防止这种情况。

telnet 给出远程 shell 的示例:

% telnet server.name
Trying 192.168.100.100...
Connected to server.name
Escape character is '^]'.

NetBSD/i386 (server.name) (pts/51)

login: fred
Password:
Last login: Fri Jun 24 21:45:29 2016 from 192.168.1.1 on pts/23

No mail.

$ whoami
fred

$ pwd
/home/fred

$ logout
Connection closed by foreign host.

相关内容