Aus Sicherheitsgründen wird immer empfohlen, Secure Shell (SSH) anstelle von Telnet oder rsh/rcp/rlogin zu verwenden.
SSH und rsh sind beide Remote Shells. Ich frage mich, ob Telnet aucheine Remote-Shell? Wenn ja, warum handelt es sich um eine Remote-Shell bzw. wie erkenne ich, dass es eine Remote-Shell ist?
Die Definition einer Remote-ShellIst
Die Remote Shell (rsh) ist ein Befehlszeilenprogramm, das Shell-Befehle als ein anderer Benutzer und auf einem anderen Computer über ein Computernetzwerk ausführen kann.
Ich habe nachgeschaut, wie Telnet verwendet wird.Ich fand heraus, dassEin Telnet-Client kann sich mit einem Telnet-Server (bei Verbindung zum Telnet-Port) oder einem anderen Prozess (bei Verbindung zu einem anderen Port als dem Telnet-Port) verbinden,das bereits auf einem Server läuft. Mir scheint, dass Telnet nichtAusführen, d. h. Starten eines Shell-Befehls auf einem Servercomputer, das Teil der Definition einer Remote-Shell ist.
Als ich nach Alternativen zu Telnet suchte, das auf UDP basiert,einige erwähnten, dass netcat
und nc
sind solche alternativen Programme. Wenn ich richtig liege netcat
und nc
beide daran gewöhnt sind ,Herstellen einer Verbindung zu einem Prozess, der bereits auf einem Computer ausgeführt wird, aber nicht zuAusführen, d. h. Starten eines Prozesses auf einer Maschine. Bedeutet dies auch, dass Telnet verwendet wird, umHerstellen einer Verbindung zu einem Prozess, der bereits auf einem Computer ausgeführt wird, aber nicht zuAusführen, d. h. Starten eines Prozesses auf einer Maschine?
Wenn es stimmt, dass Telnet verwendet wird, umHerstellen einer Verbindung zu einem Prozess, der bereits auf einem Computer ausgeführt wird, aber nicht zuAusführen, d. h. Starten eines Prozesses auf einer Maschine, warum wird es mit SSH verglichen, wenn SSH und Telnet doch unterschiedliche Dinge tun?
Danke.
ps
ich habe gerade festgestelltder Wikipedia-Artikel für Remote Shellscheint für ein bestimmtes Programm zu sein rsh
und rshd
.
Was ich meine mit einem "Remote-Shell" In meinem Beitrag handelt es sich um einen Programm- oder Protokolltyp, der verwendet werden kann, um eine Verbindung mit einem Remotecomputer herzustellen, eine Shell auf dem Remotecomputer zu starten und Befehle oder Programme in der Shell zu starten.
Antwort1
telnet
war die herkömmliche Methode, um auf einer vernetzten Unix-Maschine eine Remote-Shell zu erhalten. rsh
war die andere. ssh
ist im Vergleich dazu ein relativer Neuling.
telnet
kommuniziert normalerweise mit einem Remote-TelnetDaemon(oder „Server“-Prozess). An diesem Punkt authentifizieren Sie sich mit einem Benutzernamen und einem Passwort, um sich anzumelden, und erhalten dann eine Shell. Also, ja, es ist eine Methode, um eine Remote-Shell zu erhalten.
Der telnet
Client kann auch für andere Verbindungen verwendet werden, indem ein anderer Port angegeben wird (z. B. telnet host 80
wird mit dem Webserver kommuniziert); dies ist keine Remote-Shell. Die Remote-Shell entsteht durch die Kombination aus telnet
Kommunikation telnetd
und Authentifizierung.
telnet
wird für Remote Shell nicht empfohlen, da Benutzername und Passwort normalerweise im Klartext über das Netzwerk weitergegeben werden; ein Netzwerk-Sniffer oder ein „Man-in-the-Middle“-Angriff kann Ihr Passwort stehlen. Nicht gut! ssh
verschlüsselt den Datenverkehr, um dies zu verhindern.
Beispiel für Telnet, das eine Remote-Shell bereitstellt:
% 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.