在早期的远程连接服务器采用的是明文传输的软件,比如telnet、RSH,后来它们都ssh协议取代了。SSH服务是可以提供信息加密后再对数据进行传输,安全性大大提高。SSH有两个主要的功能
能够连接远程主机,对主机的资源进行管理
能够进行文件的传输,类似ftp服务
SSH加密技术
SSH使用了非对称加密技术,关于什么是对称加密以及非对称加密,读者想要更深入的了解请自行谷歌。非对称加密主要通过公钥与私钥来完成的,其中公钥对发送的信息进行加密,接受到信息后,使用私钥对信息进行解密。
公钥(Public key):给发送给对方主机的信息进行加密的行为,所以你的主机公钥可以给想要进行通信的另外主机。
私钥(Private key):当远程主机给当前主机发送了进行公钥加密的信息后,当前主机利用自己的私钥来对该信息进行解密。记住,你的私钥千万不能让其他主机知道。
下面通过图解来说明两台主机如何进行通信的
首先,当主机A想要给主机B发送信息时,先用主机B的公钥对将要发送的信息进行加密,当主机B收到主机A发送来的加密后的信息时,使用自己的私钥将信息解密。同理,主机B发送信息给主机A时,先用主机A的公钥对信息加密,然后收到加密后的信息的主机A,用自己的私钥对其解密。
连接远程主机的流程
下面来看本地客户机是如何连接上远程的服务器的
当服务器第一次启动sshd服务时,自动生成公钥及私钥。这些文件存放在/etc/ssh/目录下。
本地主机通过终端工具或其他方法对服务器发起请求连接。
收到客户端请求后,服务器将自己的公钥发送给客户机
客户机若之前没有保存服务器的公钥,那么就会将公钥保存客户机上面。对于windows系统,该公钥存放在C:\Users\admin.ssh\known_hosts文件内,若是linux主机,则保存在家目录的.ssh/know_hosts文件内。
客户机将自己的公钥发送给服务器,服务器保存客户端的公钥。
客户机和服务器进行通信。
更多