关于服务器,我一般会使用两个工具,一个是putty,一个是filezilla。使用时都是输入服务器账号密码,有的时候,端口号都是22,这不禁让我联想它们之间的共同点和不同点。然后几个关键词蹦了出来:ftp,ssh,sftp。

印象中,ftp就是传文件用的协议,与http,svn之列有些相通的点,看到都是这样的形式ftp://http://svn://。然后加了个s就变成了加密传输。如:ftp -> sftp,http -> https。然后了解到ssh,就是一种安全协议。这样,一个等式浮现在我眼前:ftp + ssh = sftp,http + ssl = https。心里豁然开朗,如果服务器没有开22端口,那么ssh和sftp就会用不了。有位日本客户的服务器就是如此,那种服务商提供域名和地址服务(很老的那种虚拟主机),但很大程度限制了用户的自我操作(也算是一种简化操作吧)。然后提供了多种版本的php以及mysql软件(有可能是根据用户的需求集成相关服务)。提供的东西很多(一些基本的系统参数的配置直接都显示在操作面板上),但跟我现在用友所有权地去配置一整台服务器,差别很大。添加相关域名,会自动生成相关的文件夹(有点lnmp添加域名的感觉,应该是自动添加虚拟主机,配置指向到创建的相关文件夹上),然后在文件夹内上传相关虚拟主机的代码,就能跑起来了。

以下为转载内容:

今天在写代码的时候,突然想到利用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 连接。

转自 FTP和SSH的区别 - 不系之舟coder - 博客园