`
dongzhaowu
  • 浏览: 7092 次
社区版块
存档分类
最新评论

Linux中的ftp、sftp、ssh、scp

阅读更多

 

FTP(File Transfer Protocol):是TCP/IP网络上两台计算机传送文件的协议,FTP是在TCP/IP网络和INTERNET上最早使用的协议之一,它属于网络协议组的应用层。FTP客户机可以给服务器发出命令来下载文件,上载文件,创建或改变服务器上的目录。相比于HTTP,FTP协议要复杂得多。复杂的原因,是因为FTP协议要用到两个TCP连接,一个是命令链路,用来在FTP客户端与服务器之间传递命令;另一个是数据链路,用来上传或下载数据。FTP是基于TCP协议的,因此iptables防火墙设置中只需要放开指定端口(21 + PASV端口范围)的TCP协议即可。 

ftp工作模式: 

  • PORT(主动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,客户端在命令链路上用PORT命令告诉服务器:“我打开了一个1024+的随机端口,你过来连接我”。于是服务器从20端口向客户端的1024+随机端口发送连接请求,建立一条数据链路来传送数据。
  • PASV(Passive被动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,服务器在命令链路上用PASV命令告诉客户端:“我打开了一个1024+的随机端口,你过来连接我”。于是客户端向服务器的指定端口发送连接请求,建立一条数据链路来传送数据。
  • PORT方式,服务器会主动连接客户端的指定端口,那么如果客户端通过代理服务器链接到internet上的网络的话,服务器端可能会连接不到客户端本机指定的端口,或者被客户端、代理服务器防火墙阻塞了连接,导致连接失败
  • PASV方式,服务器端防火墙除了要放开21端口外,还要放开PASV配置指定的端口范围


sftp(Secure File Transfer Protocol):安全文件传送协议。可以为传输文件提供一种安全的加密方法。sftp 与 ftp 有着几乎一样的语法和功能。SFTP为SSH的一部份,是一种传输文件到服务器的安全方式。在SSH软件包中,已经包含了一个叫作SFTP(Secure File Transfer Protocol)的安全文件传输子系统,SFTP本身没有单独的守护进程,它必须使用sshd守护进程(端口号默认是22)来完成相应的连接操作,所以从某种意义上来说,SFTP并不像一个服务器程序,而更像是一个客户端程序。SFTP同样是使用加密传输认证信息和传输的数据,所以,使用SFTP是非常安全的。但是,由于这种传输方式使用了加密/解密技术,所以传输效率比普通的FTP要低得多,如果您对网络安全性要求更高时,可以使用SFTP代替FTP。 

SCP(Secure Copy):scp就是secure copy,是用来进行远程文件复制的,并且整个复制过程是加密的。数据传输使用ssh,并且和使用和ssh相同的认证方式,提供相同的安全保证。 

ftp & scp/sftp比较: 

  • 和ftp不同的是sftp/scp传输协议是采用加密方式来传输数据的。而ftp一般来说允许明文传输,当然现在也有带SSL的加密ftp,有些服务器软件也可以设置成“只允许加密连接”,但是毕竟不是默认设置需要我们手工调整,而且很多用户都会忽略这个设置。
  • 普通ftp仅使用端口21作为命令传输。由服务器和客户端协商另外一个随机端口来进行数据传送。在pasv模式下,服务器端需要侦听另一个端口。假如服务器在路由器或者防火墙后面,端口映射会比较麻烦,因为无法提前知道数据端口编号,无法映射。(现在的ftp服务器大都支持限制数据端口随机取值范围,一定程度上解决这个问题,但仍然要映射21号以及一个数据端口范围,还有些服务器通过UPnP协议与路由器协商动态映射,但比较少见)
  • 当你的网络中还有一些unix系统的机器时,在它们上面自带了scp/sftp等客户端,不用再安装其它软件来实现传输目的。
  • scp/sftp属于开源协议,我们可以免费使用不像FTP那样使用上存在安全或版权问题。所有scp/sftp传输软件(服务器端和客户端)均免费并开源,方便我们开发各种扩展插件和应用组件。
  • 小提示:当然在提供安全传输的前提下sftp还是存在一些不足的,例如他的帐号访问权限是严格遵照系统用户实现的,只有将该帐户添加为操作系统某用户才能够保证其可以正常登录sftp服务器


SSH(Secure Shell):,由 IETF 的网络工作小组(Network Working Group)所制定;SSH 为建立在应用层和传输层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。 

  • SSH是由客户端和服务端的软件组成的:服务端是一个守护进程(daemon),他在后台运行并响应来自客户端的连接请求。服务端一般是sshd进程,提供了对远程连接的处理,一般包括公共密钥认证、密钥交换、对称密钥加密和非安全连接; 客户端包含ssh程序以及像scp(远程拷贝)、slogin(远程登陆)、sftp(安全文件传输)等其他的应用程序。
  • 从客户端来看,SSH提供两种级别的安全验证:第一种级别(基于口令的安全验证); 第二种级别(基于密匙的安全验证)。
  • SSH 主要有三部分组成: 传输层协议 [SSH-TRANS] ;用户认证协议 [SSH-USERAUTH] ;连接协议 [SSH-CONNECT]


OpenSSH:是SSH(Secure SHell)协议的免费开源实现。SSH协议族可以用来进行远程控制,或在计算机之间传送文件。而实现此功能的传统方式,如telnet(终端仿真协议)、 rcp ftp、 rlogin、rsh都是极为不安全的,并且会使用明文传送密码。OpenSSH提供了服务端后台程序和客户端工具,用来加密远程控件和文件传输过程的中的数据,并由此来代替原来的类似服务。 OpenSSH是使用SSH透过计算机网络加密通讯的实现。它是取代由SSH Communications Security所提供的商用版本的开放源代码方案。目前OpenSSH是OpenBSD的子计划。OpenSSH常常被误认以为与OpenSSL有关联,但实际上这两个计划的有不同的目的,不同的发展团队,名称相近只是因为两者有同样的软件发展目标──提供开放源代码的加密通讯软件。 

ssh -V:查看当前服务器的ssh版本信息

分享到:
评论

相关推荐

    SolarWinds-SFTP-SCP-Server.zip

    SCP基于SSH协议,允许用户复制文件和目录,而SFTP是FTP协议的安全版本,它整合在SSH服务内,提供文件浏览、上传和下载等功能。 "SFTP 服务器"和"Windows SFTP"标签表明,此软件特别适用于在Windows操作系统上搭建...

    不需要远程传输文件Linux如何关闭scp和sftp命令.docx

    因此,在Linux系统中禁止scp和sftp命令的方法是删除openssh-clients包和修改/etc/ssh/sshd_config文件。这样可以避免scp和sftp命令带来的风险。但是,需要注意的是,禁止这些命令会影响远程文件传输的功能,因此需要...

    C#版SSH、SCP,可作为客户端连结LINUX源码

    标签中提到了"FTP",虽然FTP(File Transfer Protocol)是一种常见的文件传输协议,但在这个上下文中,主要关注的是SSH和SCP,它们提供了比FTP更安全的文件传输方式,因为SSH在传输过程中会加密数据,保护用户信息不...

    WINSCP-SFTP SSH免密码登录

    **标签解析:** "SCP" 是Secure Copy的缩写,是基于SSH的一种文件传输协议,常用于Linux和Unix系统之间的文件复制,与SFTP类似,都是安全的文件传输方式。 **详细知识点:** 1. **WINSCP**:WINSCP是一款开源的...

    linux sftp、ftp上传(使用curl)

    总结起来,Linux中的SFTP和FTP上传可以通过curl命令行工具实现,结合适当的选项和参数,可以轻松地进行安全的文件传输。封装好的curl接口则进一步简化了开发过程,使得在各种应用程序中集成文件传输功能变得更加便捷...

    scp&ftp&sftp的区别

    ### scp、ftp与sftp的区别及使用方法 #### 一、SCP(Secure Copy Protocol) **定义:** SCP(Secure Copy Protocol)是一种通过SSH协议进行安全数据传输的协议。它允许用户在不同主机之间安全地复制文件,并且...

    scp,sftp命令快速入门

    scp 和 sftp 是两种常用的文件传输协议,都是基于 SSH 协议的安全文件传输方式。本文将对 scp 和 sftp 命令进行详细的介绍,包括其使用方法、基本命令、选项等。 一、sftp 命令 sftp 是一种基于 SSH 协议的安全...

    Renci.SshNet.dll及其文档和实现SSH、SCP、FTP等操作的小例子

    Renci.SshNet是一个.NET库,它为开发者提供了一种方便的方式来实现Secure Shell (SSH) 协议,包括Secure Copy (SCP) 和File Transfer Protocol (FTP) 的功能。这个库主要用于安全地远程连接到服务器,执行命令,传输...

    FTP和SSH客户端

    FTP(File Transfer Protocol)和SSH(Secure Shell)是两种在计算机网络中用于传输文件和管理远程服务器的重要协议。本文将详细介绍这两个概念、它们的工作原理以及如何使用对应的客户端进行操作。 FTP是一种基于...

    winscp Free SFTP SCP and FTP client for Windows

    WinSCP是一款广受欢迎的免费软件,专为Windows用户设计,提供了强大的SFTP、SCP和FTP文件传输功能。这款客户端程序基于SSH(Secure Shell)协议,确保了数据在传输过程中的安全性,是网络管理员和开发人员进行远程...

    WinSCP 是一个用于 Windows 的开源 SFTP(SSH 文件传输协议)、FTP(文件传输协议)、

    WinSCP 是一个用于 Windows 的开源 SFTP(SSH 文件传输协议)、FTP(文件传输协议)、WebDAV 和 SCP(安全复制)客户端。它主要用于在本地计算机和远程服务器之间安全地传输文件。以下是 WinSCP 的一些主要功能和...

    详解Java使用Jsch与sftp服务器实现ssh免密登录

    SFTP(SSH File Transfer Protocol)是一种安全文件传输协议,它为文件传输提供了安全加密的方式。与传统FTP协议相比,SFTP能够对认证信息和传输数据进行加密处理,从而保障数据传输过程的安全性。由于采用了加密/...

    linux ftp客户端

    在Linux中,最常用的FTP客户端是`ftp`命令行工具。要启动它,只需在终端输入`ftp`并跟随服务器的IP地址或域名。例如: ``` ftp example.com ``` 2. **登录与身份验证**: 登录时,通常需要提供用户名和密码。...

    SecureCRT 6.6 绿色汉化版带SFTP和SCP

    5. 文件传输:除了SFTP和SCP,还支持TFTP、FTP等协议进行文件传输。 6. 会话保存:可以保存和加载会话配置,方便下次快速连接。 7. 脚本支持:通过脚本自动化执行命令,简化重复工作。 8. 会话同步:在一个窗口操作...

    SSH工具SFTP 客户端 WinSCP 5.13.4

    FTP协议本身并不加密,而SFTP和SCP是基于SSH的安全传输方式,对数据进行了加密保护。此外,WinSCP的图形化界面和丰富的功能使其在操作性和功能性上超越了许多纯命令行的FTP工具。 **安装与使用** WinSCP的便携版...

    Renci.SshNet.dll及其实现SSH、SCP、FTP等操作的小例子

    Renci.SshNet是一个强大的.NET库,用于实现SSH(Secure Shell)、SCP(Secure Copy)和FTP(File Transfer Protocol)协议的通信。这个库为开发者提供了一种安全且方便的方式来远程执行命令、传输文件以及管理网络...

    ftp和ssh的管理软件,绿色的,好用的,名字记不得了。一些系统用不起来

    Xftp 5是与Xshell配套的文件传输工具,支持FTP、SFTP、FTPS和SCP协议。它拥有直观的界面,使得文件上传和下载变得简单快捷。Xftp提供了多窗口同时操作、拖放功能、文件预览、自动重连等实用特性,极大地提升了文件...

    Go-sftp-这个Go包实现了SSH文件传输协议

    SFTP是SSH的一个子系统,它提供了与FTP类似的功能,但具有更好的安全性,因为所有数据都通过加密的SSH通道传输。 SFTP协议本身是基于网络的,它定义了一种在两个系统之间安全地传输文件的方法,通常用于远程服务器...

    sftp资料sftp资料

    1. `linux下FTP、SFTP命令详解.doc` - 这个文档可能包含了在Linux环境中使用FTP和SFTP的基本命令和操作。 2. `Linux下sftp自动上传文件 - xiang002的日志 LUPA开源社区.mht` - 这是一篇关于如何在Linux上配置SFTP...

    Renci.SshNet.dll实现SSH、SCP、FTP功能支持,下载

    Renci.SshNet.dll及其文档和实现SSH、SCP、FTP等操作的功能支持,下载

Global site tag (gtag.js) - Google Analytics