实习中通过ssh telnet 连接测试环境和生产环境,还使用nc命令测试数据发送
首先,telnet和ssh都是连接远程计算机的连接协议,可以完成对完成计算机的控制,方便维护。其次,他们都是基于TCP/IP协议下的,所以连接时都需要知道目标机的网址或者域名,第三,他们都是与远程主机连接的通道,完成的目的是一样的,只不过手段不一样而已。
Telnet
Telnet连接计算机需要如下几个过程:
客户端建立与远程主机的TCP连接;远程机通知客户机收到连接,等候输入;客户机收到通知后收集用户输入,将输入的字符串变成标准格式并传送给远程机;远程机接受输入的命令,并执行,将得到的结果输出给客户机;客户机在收到回显后显示在界面上。
值得注意的是,telnet连接的时候直接建立TCP连接,所有传输的数据都是明文传输,所以是一种不安全的方式。
SSH
SSH 为Secure Shell的缩写,SSH 为建立在应用层基础上的安全协议,是比较可靠安全的协议。
版本号协商阶段,SSH目前包括 SSH1和SSH2两个版本,双方通过版本协商确定使用的版本
密钥和算法协商阶段,SSH支持多种加密算法,双方根据本端和对端支持的算法,协商出最终使用的算法
认证阶段,SSH客户端向服务器端发起认证请求,服务器端对客户端进行认证
会话请求阶段,认证通过后,客户端向服务器端发送会话请求
交互会话阶段,会话请求通过后,服务器端和客户端进行信息的交互
值得注意的是,由于ssh经过加密算法加密,收报文需要解密,发报文需要加密,导致其传输速度、效率较telnet低很多,然而,它却有telnet不具有的安全性。
在使用SSH的时候,一个数字证书将认证客户端(你的工作站)和服务器(你的网络设备)之间的连接,并加密受保护的口令。SSH1使用RSA加密密钥,SSH2使用数字签名算法(DSA)密钥保护连接和认证。加密算法包括Blowfish,数据加密标准(DES),以及三重DES(3DES)。SSH保护并且有助于防止欺骗,“中间人”攻击,以及数据包监听。 通过使用SSH把所有传输的数据进行加密,这样“中间人”这种攻击方式就不可能实现了,而且也能够防止DNS和IP欺骗。还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。SSH有很多功能,它既可以代替telnet,又可以为ftp、pop、甚至ppp提供一个安全的“通道”。
ssh root@192.168.2.200
nc
nc 127.0.0.1 9092
nc命令的作用:
- 实现任意TCP/UDP端口的侦听,nc可以作为server以TCP或UDP方式侦听指定端口
- 端口的扫描,nc可以作为client发起TCP或UDP连接
- 机器之间传输文件
- 机器之间网络测速
参数:
-l 用于指定nc将处于侦听模式。指定该参数,则意味着nc被当作server,侦听并接受连接,而非向其它地址发起连接。
-p 暂未用到(老版本的nc可能需要在端口号前加-p参数,下面测试环境是centos6.6,nc版本是nc-1.84,未用到-p参数)
-s 指定发送数据的源IP地址,适用于多网卡机
-u 指定nc使用UDP协议,默认为TCP
-v 输出交互或出错信息,新手调试时尤为有用
-w 超时秒数,后面跟数字
nc后,作为client,发送:
server收到后,查看日志: