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终端直接编写邮件