linux scp、ftp和sftp有什么区别,传输文件那个速度快
传输文件使用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
windows中可以使用Core FTP,FileZilla, WinSCP,Xftp来连接SFTP进行上传,下载文件,建立,删除目录等操作。
以winscp软件为例:
1、将之前下载的sftp服务端解压缩,然后直接运行主程序。点“NEXT”按钮进行下面的操作。
2、在许可协议窗口处填写“同意”并点“下一步”按钮继续。
3、在接下来的配置窗口中选择要安装的组件,从界面中可以看到包括client(客户端)与server(服务器端),实际上只需要服务器端,而客户端使用之前下载的WinSCP 382即可。选择相应的服务器端组件后点“下一步”完成安装
4、 接下来就要启动该服务了,通过“开始->运行->输入CMD后回车”进入到命令提示窗口,然后通过cd命令定位到c:\programfiles\openssh\bin目录。
5、依次执行mkgroup -l >> \etc\group mkpasswd -l >> \etc\passwd命令,这样你目前windows本地帐户中的用户就都可以登录该sftp服务器了,自对文件目录的访问权限和NTFS权限一致。此步骤相当于FTP中的建立访问帐号。
6、添加完各个访问帐户后就可以使用了。
SFTP:sftp是Secure File Transfer Protocol的缩写,安全文件传送协议。可以为传输文件提供一种安全的加密方法。sftp 与 ftp 有着几乎一样的语法和功能。
众所周知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。
Windows7系统连接FTP服务器方法:
1、打开->计算机 在工具栏中选择 ->映射网络驱动器。
2、经过上一步弹出映射网络驱动器。在弹出的窗口中选择“连接到可用于存储文档和的网站”;选择完成出现下一个窗口直接下一步。
3、选择自定义网络位置,选择后点击下一步,弹出一个新窗口,这里面需要输入ftp服务器的ip地址,输入完成后下一步。
4、上一步通过后会弹出一个新窗口,没有设置的内容请直接下一步,之后又弹出一个新窗口,这个窗口是配置完成之后你登录ftp图表的名字,请随意填写即可。
5、FTP登录客户端位置,经过以上4步的配置FTP连接方式已经成功完成,而且通这种方法配置是会永久可用的,不需去手动填写FTP的ip地址,登录ftp服务非常容易,打开win7 系统的计算机,在硬盘和光驱下面就会出现fpt登录的图表。
6、配完可能会出现登录ftp在网页下显示,这样是不对的,需要修改为资源管理器显示,这样操作才方便,具体步骤打开IE浏览器-->工具-->internet选项,修改显示方式。
SFTP本身没有单独的守护进程,它必须使用sshd守护进程(端口号默认是22)来完成相应的连接操作,所以从某种意义上来说,SFTP并不像一个服务器程序,而更像是一个客户端程序。
启动ssh服务、sftp服务
执行命令 /etc/initd/sshd start 注意这里需要在绝对路径下执行sshd start。
0条评论