linux scp、ftp和sftp有什么区别,传输文件那个速度快

linux scp、ftp和sftp有什么区别,传输文件那个速度快,第1张

传输文件使用ftp协议速度快。

区别如下:

一、指代不同

1、scp:是用来进行远程文件拷贝的,是 SSH 中最方便有用的命令。

2、ftp: 是 TCP/IP 协议组中的协议之一。

3、sftp:安全文件传送协议。可以为传输文件提供一种安全的网络的加密方法。

二、使用方式不同

1、scp:scp 在需要进行验证时会要求你输入密码或口令。

2、ftp:FTP服务器用来存储文件,用户可以使用FTP客户端通过FTP协议访问位于FTP服务器上的资源。

3、sftp:为 SSH的其中一部分,是一种传输档案至 Blogger 伺服器的安全方式。

三、特点不同

1、scp:数据传输使用 ssh,并且和ssh 使用相同的认证方式,提供相同的安全保证 。

2、ftp:下FTP协议使用TCP端口中的 20和21这两个端口,其中20用于传输数据,21用于传输控制信息。

3、sftp:SFTP本身没有单独的守护进程,必须使用sshd守护进程(端口号默认是22)来完成相应的连接和答复操作,所以从某种意义上来说,SFTP并不像一个服务器程序,而更像是一个客户端程序。

-scp

-FTP协议

-sftp

这是winspc连接linux 出现错误,就是服务器没有开sftp服务

解决:在linux服务器上,

确保sftp定义在sshd的配置文件(一般为/etc/ssh/sshd_config)中有如下一行:

Subsystem sftp /usr/libexec/openssh/sftp-server

然后启动(或者重新启动)sshd服务。

FTP是文件传输协议。在网站上,如果你想把文件和人共享,最便捷的方式莫过于把文件上传到FTP服务器上,其他人通过FTP客户端程序来下载所需要的文件。 FTP进行文件传输需要通过端口进行。一般所需端口为: 1 控制链路—TCP端口21。控制器端。用于发送指令给服务器以及等待服务器响应。 2 数据链路---TCP端口20。数据传输端口。用来建立数据传输通道的。主要用来从客户向服务器发送一个文件、从服务器向客户发送一个文件、从服务器向客户发送文件或目录列表。 FTP为了适应不同的网络环境,支持主动连接和被动连接两种模式。这两种模式都主要针对数据链路进行的,跟控制链路无关。 FTP的安全隐患: 一、FTP服务器软件漏洞。 二、明文口令。 三、FTP旗标。 四、通过FTP服务器进行端口扫描。 五、数据劫持。 FTP的安全策略: 一、使用较比安全的系统和FTP服务软件。 二、使用密文传输用户名和口令。 三、更改服务软件的旗标。 四、加强协议安全性。 SFTP是Secure File Transfer Protocol的缩写,是安全文件传送协议。可以为传输文件提供一种安全的加密方法。跟ftp几乎语法功能一样。 SFTP是SSH的一部分,是一种传输档案至Blogger伺服器的安全方式。它

sftp是ssh内含的协议,只要sshd服务器启动了,它就可用,它本身不需要ftp服务器启动。 FTP服务器和客户端要进行文件传输,就需要通过端口来进行。FTP协议需要的端口一般包括两种:

控制链路--------TCP端口21

所有你发往FTP服务器的命令和服务器反馈的指令都是通过服务器上的21端口传送的。

数据链路--------TCP端口20

数据链路主要是用来传送数据的,比如客户端上传、下载内容,以及列目录显示的内容等。 FTP服务器和客户端要进行文件传输,就需要通过端口来进行。FTP协议需要的端口一般包括两种:

控制链路--------TCP端口21

所有你发往FTP服务器的命令和服务器反馈的指令都是通过服务器上的21端口传送的。

数据链路--------TCP端口20

数据链路主要是用来传送数据的,比如客户端上传、下载内容,以及列目录显示的内容等。 FTP服务器和客户端要进行文件传输,就需要通过端口来进行。FTP协议需要的端口一般包括两种:

控制链路--------TCP端口21

所有你发往FTP服务器的命令和服务器反馈的指令都是通过服务器上的21端口传送的。

数据链路--------TCP端口20

数据链路主要是用来传送数据的,比如客户端上传、下载内容,以及列目录显示的内容等。 FTP连接的两种方式

在数据链路的建立上,FTP Server 为了适应不同的网络环境,支持两种连接模式:主动模式(Port)和被动模式(Pasv)。其实这两种连接模式主要是针对数据链路进行的,和控制链路无关。

主动模式

主动模式是这样工作的:客户端把自己的高位端口和服务器端口21建立控制链路。所有的控制命令比如Is或get都是通过这条链路传送的。

当客户端需要服务器端给它传送数据时,客户端会发消息给服务器端,告诉自己的位置和打开的高位端口(一般大于1024的端口都就叫高位端口),等候服务器 的20端口和客户端打开的端口进行连接,从而进行数据的传输。当服务器端收到信息后,就会和客户端打开的端口连接,这样数据链路就建立起来了。

采用主动模式连接服务器的客户端,当它位于NAT或者防火墙的保护之后时会碰到连接失败的问题。这是因为当防火墙接到服务器发送过来的信息的时候,并不知道应该发送给内部网络中的哪一台客户端造成的。

被动模式

被动模式是这样工作的:当客户端发送数据请求后,服务器也会发信息给客户端,告诉客户端:服务器在本地打开了一个高位端口P,你现在来连接我吧。当客户端收到该信息时,就会去连接服务器端的端口P,连接成功后,数据链路就建立了。

从上面的解释中我们可以看到,两种模式主要的不同是数据连接建立的不同。对于Port模式,是客户端在本地打开一个端口等服务器去连接建立数据连接,而Pasv模式就是服务器打开一个端口等待客户端去建立一个数据连接。

众所周知SFTP账号是基于SSH账号的,所以在默认情况下访问服务器的权限是非常大的。下面为SFTP用户权限设置方法。

必要条件:

你的openssh-server版本至少得失48p1, 因为配置权限需要版本添加的新配置项ChrootDirectory来完成。

如何查看自己服务器上的ssh版本?大家可以尝试以下命令:

$ ssh -V

具体实施步骤:

1 我们需要创建一个用户组,专门用于sftp用户

$ groupadd sftpusers

2 我们创建一个用户test

$ useradd -s /bin/false -G sftpuser test

注意这里我们将test用户的shell设置为/bin/false使他没有登陆shell的权限

3 编辑 /etc/ssh/sshd_config

找到Subsystem这个配置项,将其修改为

Subsystem sftp internal-sftp

然后再到文件最尾处增加配置设定属于用户组sftpusers的用户都只能访问他们自己的home文件夹

Match Group sftpusers

ChrootDirectory %h

ForceCommand internal-sftp

AllowTcpForwarding no

保存并关闭文件

4 修改test用户home文件夹的权限,让其属于root用户

chown root ~test

5 重启sshd服务

$ service sshd restart

6 测试用户账号

$ ssh test@localhost

连接会被拒绝或者无法登陆

$ sftp tesst@localhost

登陆后你会发现你的账号无法切换到除自己home目录之外的地方的

常见问题:

如果你链接服务器的时候出现下面的提示:

Write failed: Broken pipe

Couldn't read packet: Connection reset by peer

这个问题的原因是ChrootDirectory的权限问题,你设定的目录必须是root用户所有,否则就会出现问题。所以请确保sftp用户根目录的所有人是root, 权限是 750 或者 755。

一个是传输协议、一个是服务器。

ftp是一种文件传输协议。

sftp是基于ssh协议的加密ftp传输协议。SFTP 为 SSH的一部分,SFTP是使用加密传输认证信息和传输的数据,所以,使用SFTP是非常安全的。

sftp是不需要另外安装的,因为是SSH自带的,所以用ROOT用SFTP(不是FTP)直接可以登陆主目录。注意是sftp协议装上 搜索sshd 后台服务程序就可以对 shell用户提供sftp服务了没有限制目录访问什么的。

sftp是sshd里的一个 subsystem 默认应该是包含,可以改设置文件禁止它sftp 走的是ssh 协议 开启了sshd就相当于开启了sftp。

vsftpd是一款ftp服务器,支持ftp协议,不支持sftp协议。LNMP一键安装:https://lnmporg/installhtml。LNMP状态管理命令: https://lnmporg/faq/lnmp-status-managerhtml。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » linux scp、ftp和sftp有什么区别,传输文件那个速度快

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情