1. 協議用途
Telnet和SSH用於遠程訪問服務器的的兩大常用協議。利用它們,我們可以管理並監控生產服務器和企業服務器,更新服務器內核,安裝最新的軟件包和補丁,能夠遠程登錄服務器,開展軟件開發、測試運行、更改代碼和重新部署。
雖然前者比較古老,但是后者用了不太長的時間就占據了主流。
2. 協議特點
2.1 Telnet
- Telnet取名自Telecommunications和Networks的聯合縮寫,這是一種在UNIX平台上最為人所熟知的網絡協議。
- Telnet使用端口23,它是專門為局域網設計的。
- Telnet不是一種安全通信協議,因為它並不使用任何安全機制,通過網絡/互聯網傳輸明文格式的數據,包括密碼,所以誰都能嗅探數據包。
- Telnet中沒有使用任何驗證策略及數據加密方法,因而帶來了巨大的安全威脅,這就是為什么telnet不再用於通過公共網絡訪問網絡設備和服務器。
2.2 SSH
- SSH取名自安全外殼(Secure Shell),它現在是通過互聯網訪問網絡設備和服務器的唯一的主要協議。
- SSH默認情況下通過端口22運行,該端口號可以更改。
- SSH是一種非常安全的協議,因為它共享並發送經過加密的信息,從而為通過互聯網等不安全的網絡訪問的數據提供了機密性和安全性。
- 一旦通訊的數據使用SSH經過加密,就極難解壓和讀取該數據,所以我們的密碼在公共網絡上傳輸也變得很安全。
- SSH還使用公鑰用於對訪問服務器的用戶驗證身份,這是一種很好的做法,為我們提供了極高的安全性。
3. 協議對比
- (1) SSH 和 Telnet 應用領域基本重合。
- (2) SSH 比 Telnet 更加安全。
- (3) 在發送數據時,SSH會對數據加密,而Telnet不會(它會直接發送明文,包括密碼)。
- (4) SSH使用公鑰授權,而Telnet不使用任何授權。
- (5) 在帶寬上,SSH 會比Telnet多一點點開銷。
- (6) SSH 幾乎在所有場合代替了Telnet。
4. 落日余暉——Telnet典型使用場景
雖然由於安全的原因,Telnet基本上已經被SSH完全代替。但是在一些測試的、無密的場合,由於自身的簡單性和普及性,Telnet依然被經常使用。
4.1 Telnet 檢查遠程http服務是否正常啟動
[root@pbx2 ~]# telnet localhost 80
Trying ::1...
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
telnet: connect to address 127.0.0.1: Connection refused
[root@pbx2 ~]#
現在,我們可以看到,該Web服務已被停止,telnet也無法連接,所以我們不得不在服務器上重啟服務,如下所示:
[root@pbx2 ~]# service httpd restart
Stopping httpd: [FAILED]
Starting httpd: [ OK]
現在再次檢查:
[root@pbx2 ~]# telnet localhost 80
Trying ::1...
Connected to localhost.
Escape character is '^]'.
^]
telnet> quit
Connection closed.
所以apache服務現已運行。
4.2 Telnet 檢查遠程SSH服務是否正常啟動
[root@pbx2 ~]# telnet localhost 22
Trying ::1...
Connected to localhost.
Escape character is '^]'.
SSH-2.0-OpenSSH_5.3
^]
telnet> quit
Connection closed.
5 鏈接
- 一個炫技的視頻:基於SMTP協議,在Telnet終端直接編寫郵件