SSH和SFTP简介

简介:

传统FTP 在传输机制和实现原理上是没有考虑安全机制的,因为它们在网络上用明文传送数据、用户帐号和用户口令,别有用心的人非常容易地就可以截获这些数据、用户帐 号和用户口令。而且,这些网络服务程序容易受到“中间人”(man-in-the-middle)这种攻击方式的攻击。所谓“中间人”的攻击方式,就是" “中间人”冒充真正的服务器接收你的传给服务器的数据,然后再冒充你把数据传给真正的服务器。服务器和你之间的数据传送被“中间人”做了手脚之后,就会出 现很严重的问题。

SSH是Secure Shell的缩写。通过使用SSH,可以把所有传输的数据进行加密,而且能够防止DNS欺骗和IP欺骗。使用SSH,还可以将传输的数据压缩,所以可以加快传输的速度。SSH可以为FTP提供一个安全的“通道”。

SSH协议是建立在应用层和传输层基础上的安全协议,它主要由以下三部分组成,共同实现SSH的安全保密机制。

l         传输层协议,它提供诸如认证、信任和完整性检验等安全措施,此外它还可以任意地提供数据压缩功能。通常情况下,这些传输层协议都建立在面向连接的TCP数据流之上。

l         用户认证协议层,用来实现服务器的跟客户端用户之间的身份认证,它运行在传输层协议之上。

l         连接协议层,分配多个加密通道至一些逻辑通道上,它运行在用户认证层协议之上。

     当安全的传输层连接建立之后,客户端将发送一个服务请求。当用户认证层连接建立之后将发送第二个服务请求。这就允许新定义的协议可以和以前的协议共存。连接协议提供可用作多种目的通道,为设置安全交互Shell会话和传输任意的TCP/IP端口和X11连接提供标准方法。

SSH提供两种级别的安全验证:SSH1和SSH2。

    SSH1(基于口令的安全验证),只要你知道自己的帐号和口令,就可以登录到远程主机,并且所有传输的数据都会被加密。但是,这种验证方式不能保证你正在连接的服务器就是你想连接的服务器。可能会有别的服务器在冒充真正的服务器,也就是受到"中间人"这种攻击方式的攻击。

SSH2(基 于密匙的安全验证),需要依靠密匙,也就是你必须为自己创建一对密匙,并把公有密匙放在需要访问的服务器上。如果你要连接到SSH服务器上,客户端软件就 会向服务器发出请求,请求用你的密匙进行安全验证。服务器收到请求之后,先在你在该服务器的用户根目录下寻找你的公有密匙,然后把它和你发送过来的公有密 匙进行比较。如果两个密匙一致,服务器就用公有密匙加密"质询"(challenge)并把它发送给客户端软件。客户端软件收到"质询"之后就可以用你的 私人密匙解密再把它发送给服务器。

与SSH1相比,SSH2不需要在网络上传送用户口令。另外,SSH2不仅加密所有传送的数据,而"中间人"这种攻击方式也是不可能的(因为他没有你的私人密匙)。但是整个登录的过程可能慢一些。

SSH最常见的应用就是,用它来取代传统的Telnet、FTP等网络应用程序,通过SSH登录到远方机器执行你想进行的工作与命令。在不安全的网路通讯环境中,它提供了很强的验证(authentication)机制与非常安全的通讯环境。

使用SSH协议进行FTP传输的协议叫SFTP(安全文件传输)

我们可以使用SFTP作为传递信息文件的协议。使用SFTP,需要使FTP服务器支持SFTP协议,并且在客户端使用SFTP访问服务器。

 

 

支持SSH的服务器端软件

l         VShell Server,Windows平台下的SSH服务器软件

l         Unix/Linux平台下的SSH服务器软件非常多。

 

 

    Windows平台下支持SSH的客户端软件

l         Entunnel

l         SecureCRT

l         SecureFX

l         F_SECRUE

SFTP开发

PUTTY是一个Windows平台下的SSH客户端程序,支持SFTP。

分类:  linux

本文转自快乐就好博客园博客,原文链接:http://www.cnblogs.com/happyday56/p/5664693.html,如需转载请自行联系原作者
相关文章
|
3月前
|
网络协议 安全 网络安全
Android Termux安装SSH结合内网穿透实现远程SFTP文件传输
Android Termux安装SSH结合内网穿透实现远程SFTP文件传输
49 0
|
8月前
|
监控 Shell 网络安全
软件丨中文汉化版MobaXterm,一款强大好用的远程终端登录利器,支持SSH、SFTP协议
软件丨中文汉化版MobaXterm,一款强大好用的远程终端登录利器,支持SSH、SFTP协议
|
8月前
|
安全 网络协议 Shell
iOS 逆向编程(六) SSH、OpenSSH、SSL、OpenSSL 简介与关系
iOS 逆向编程(六) SSH、OpenSSH、SSL、OpenSSL 简介与关系
181 0
|
9月前
|
设计模式 开发框架 缓存
SSH框架简介篇
SSH框架简介篇
197 0
|
网络安全 API Python
Python 基于Python实现的ssh兼sftp客户端(下)
Python 基于Python实现的ssh兼sftp客户端(下)
76 0
|
机器学习/深度学习 Linux 测试技术
Python 基于Python实现的ssh兼sftp客户端(上)
Python 基于Python实现的ssh兼sftp客户端(上)
162 0
|
搜索推荐 网络安全 C#
一个Windows远程工具,小巧但实用,支持RDP、SSH、SFTP、FTP等多种协议
这是一个C#开发的Windows远程桌面开源项目,它支持RDP、SSH、VNC、Telnet、(S)FTP、RemoteApp、NoMachine和其他应用。
683 0
一个Windows远程工具,小巧但实用,支持RDP、SSH、SFTP、FTP等多种协议
|
网络安全 数据安全/隐私保护 开发者
公司官网建站笔记(一):腾讯云服务器装CentOS8.2系统、重置密码、远程ssh登陆、sftp传递文件以及新建开发者账户
公司官网建站笔记(一):腾讯云服务器装CentOS8.2系统、重置密码、远程ssh登陆、sftp传递文件以及新建开发者账户
公司官网建站笔记(一):腾讯云服务器装CentOS8.2系统、重置密码、远程ssh登陆、sftp传递文件以及新建开发者账户
|
设计模式 算法 安全
十分钟学会SSH+SFTP操作终端,告别XShell
十分钟学会SSH+SFTP操作终端,告别XShell
289 0