出於安全原因,人們總是說使用 Secure Shell (SSH) 而不是 Telnet 或 rsh/rcp/rlogin。
SSH 和 rsh 都是遠端 shell。我想知道 telnet 是否也是遠端外殼?如果是,為什麼它是遠端 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.