想要玩转网络 SSH必须了解下
经常看到各种高阶的网络应用教程,比如穿透内网、跨系统网络连接等,会提到一个单词——SSH。尤其是在Linux类的设备或相关设置中,要修改网络、远程控制之类的操作,几乎都会涉及到SSH操作。那么这个SSH究竟是什么呢?
这事儿就得说到互联网上的设备通信了,它们既需要保密,又需要方便,还得互相兼容,所以对加密处理有一定的要求。解决方式就是使用各个平台都支持得协议,它们既能加密又带有快捷的内置认证技术,例如rlogin、Telnet、FTP或者rsh之类的,SSH也是这种协议,而且安全性比较突出。
由于优势突出,所以SSH目前已经成为了Linux系统和很多设备,比如路由器操作系统的标准配置。它既可以用于计算机之间的加密登录,也支持隧道协议、端口映射和X11连接,借助SFTP或SCP协议还可以传输文件,应用范围特别广。所以我们只要进行网络设置,就经常会碰到SSH协议,比如很多小伙伴进行远程控制时需要“穿透”内网的时候。
SSH的工作原理在不同的应用中有所区别,不过大致方式差不多,就是服务器启动的时候自己产生一个密钥(768bit公钥),本地的SSH客户端发送连接请求到SSH服务器,服务器检查连接客户端发送的数据和IP地址,确认合法后发送密钥给客户端,此时客户端将本地私钥(256bit)和服务器的公钥结合成密钥对key(1024bit)并发回给服务器端。
具体来说,在使用SSH登录工具时,SSH客户端的登录方式是这样的:
ssh user@remote -p port
其中“user”是你在远程机器上的用户名,如果不指定的话默认为当前用户;“remote”则是远程机器的地址,可以是IP地址(局域网)、域名(局域网、广域网);最后的“port”是指SSH服务器端监听端口,如果不指定的话就为默认值22(SSH协议专用端口)。这样的登录命令执行后,再依据提示确认公钥、输入私钥就可以了。
从安全性角度上看这样的“双保险”可以最大限度确保SSH的安全性连接,但是它也造成了不必要的麻烦——验证公钥,输入私钥这样繁琐的操作。其实,这些也可以通过SSH的客户端软件实现免密钥登录的。我们就以Windows平台下的Putty(SSH登录工具)举例说明。
除了打开putty的界面外,我们还可以新建一个Putty的快捷方式,然后右键单击该快捷方式,然后选择“属性”,在“目标”栏中添加“ -ssh -l root -P 22 123.123.123.123 -pw 456”。注意添加时要在putty.exe后连接一个空格,端口号“22”,其后的IP地址或域名都可根据实际情况修改;最后在-pw后输入目标电脑的SSH密码就行了。
设置完毕点击确定,并双击这个快捷方式,它便可以自动连接到指定好的目标主机SSH上,再确认保存一下公钥,日后使用就完全不需要输入用户名密码了,非常方便。当然,这只是SSH最基本的登录方法,具体要实现何种操作,则是根据你输入的命令来决定的,有兴趣的小伙伴不妨多多摸索。