It is always said to use Secure Shell (SSH) instead of Telnet or rsh/rcp/rlogin, for security reason.
SSH and rsh are both remote shells. I wonder if telnet is also a remote shell? If yes, why is it a remote shell, or how shall I understand that it is a remote shell?
The definition of a remote shell is
The remote shell (rsh) is a command line computer program that can execute shell commands as another user, and on another computer across a computer network.
I looked up how telnet is used. What I found was that a telnet client can connects to a telnet server (when connecting to the telnet port) or another process (when connecting to a port other than the telnet port), which is already running on a server machine. It seems to me that telnet can't execute i.e. launch a shell command on a server machine, which is part of the definition of a remote shell.
When I looked for alternatives to telnet which is based on UDP, some mentioned that netcat
and nc
are such alternative programs. If I am correct, netcat
and nc
are both used to connect to a process already running on a machine, but not to execute i.e. launch a process on a machine. Does it also suggest that telnet is used to connect to a process already running on a machine, but not to execute i.e. launch a process on a machine?
If it is true that telnet is used to connect to a process already running on a machine, but not to execute i.e. launch a process on a machine, why is it compared to SSH, given that SSH and telnet are doing different things?
Thanks.
p.s.
I just realized the Wikipedia article for remote shell seems to be for a particular program rsh
and rshd
.
What I mean by a "remote shell" in my post is a type of programs or protocols that can be used to connect to a remote machine, launch a shell on the remote, and launch commands or programs in the shell.