经常看到各种高阶的网络应用教程,比如穿透内网、跨系统网络连接等,会提到一个单词——SSH。尤其是在Linux类的设备或相关设置中,要修改网络、远程控制之类的操作,几乎都会涉及到SSH操作。那么这个SSH究竟是什么呢?
这事儿就得说到互联网上的设备通信了,它们既需要保密,又需要方便,还得互相兼容,所以对加密处理有一定的要求。解决方式就是使用各个平台都支持得协议,它们既能加密又带有快捷的内置认证技术,例如rlogin、Telnet、FTP或者rsh之类的,SSH也是这种协议,而且安全性比较突出。
由于优势突出,所以SSH目前已经成为了Linux系统和很多设备,比如路由器操作系统的标准配置。它既可以用于计算机之间的加密登录,也支持隧道协议、端口映射和X11连接,借助SFTP或SCP协议还可以传输文件,应用范围特别广。所以我们只要进行网络设置,就经常会碰到SSH协议,比如很多小伙伴进行远程控制时需要“穿透”内网的时候。
SSH的工作原理在不同的应用中有所区别,不过大致方式差不多,就是服务器启动的时候自己产生一个密钥(768bit公钥),本地的SSH客户端发送连接请求到SSH服务器,服务器检查连接客户端发送的数据和IP地址,确认合法后发送密钥给客户端,此时客户端将本地私钥(256bit)和服务器的公钥结合成密钥对key(1024bit)并发回给服务器端。