今天在写代码的时候,突然想到利用xshell连接虚拟机都要输入密码,而从本机访问虚拟机却不需要,有些疑惑,原来是使用的服务不一致,下面是查到的资料
(1)SSH为建立在应用层和传输层基础上的安全协议,SSH采用面向连接的TCP协议传输 应用22号端口,安全系数较高。
(2)FTP是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。TCP/IP协议中,FTP占用两个端口,FTP标准命令TCP端口号为21,Port方式数据端口一般为20。虽然FTP在控制连接方面可以通过SSL加密,但是FTP在通过数据端口传输数据时是不加密的。可以使用SSH为FTP数据传输进行加密,即:SFTP。
SSH除了作为安全协议以外,有时还被作为一种应用,对于开启SSH服务的设备或系统,可能在终端通过SSH客户端软件进行连接,类似于TELNET,甚至还有传输文件的功能。我常用这个连接LINUX服务器和路由。可以用户赤连接SSH服务的软件,我知道的有:SecureCRT、ssh secure shell client、PuTTY
SSH 主要由三部分组成:
(1)传输层协议 [SSH-TRANS]
提供了服务器认证,保密性及完整性。此外它有时还提供压缩功能。 SSH-TRANS 通常运行在TCP/IP连接上,也可能用于其它可靠数据流上。 SSH-TRANS 提供了强力的加密技术、密码主机认证及完整性保护。该协议中的认证基于主机,并且该协议不执行用户认证。更高层的用户认证协议可以设计为在此协议之上。
(2)用户认证协议 [SSH-USERAUTH]
用于向服务器提供客户端用户鉴别功能。它运行在传输层协议 SSH-TRANS 上面。当SSH-USERAUTH 开始后,它从低层协议那里接收会话标识符(从第一次密钥交换中的交换哈希H )。会话标识符唯一标识此会话并且适用于标记以证明私钥的所有权。 SSH-USERAUTH 也需要知道低层协议是否提供保密性保护。
(3)连接协议 [SSH-CONNECT]
将多个加密隧道分成逻辑通道。它运行在用户认证协议上。它提供了交互式登录话路、远程命令执行、转发 TCP/IP 连接和转发 X11 连接。