2010-04-26 17:36:01 +0000 2010-04-26 17:36:01 +0000
164
164

SCP和SFTP有什么区别?

通常我都是用scp命令来传输文件在*nixes上。

SFTP和SCP有什么区别?它们不是都可以在SSH上工作吗?

答案 (5)

105
105
105
2010-04-26 19:36:45 +0000

来自维基百科:

与早期的SCP协议(只允许文件传输)相比,SFTP协议允许对远程文件进行一系列操作–它更像一个远程文件系统协议。与SCP客户端相比,SFTP客户端的额外功能包括恢复中断的传输、目录列表和远程文件删除。[1]由于这些原因,与GUI SCP客户端相比,实现GUI SFTP客户端相对简单。

尽管SCP和SFTP在文件传输过程中都利用了相同的SSH加密,开销也是一样的,但SCP在传输文件方面通常比SFTP快得多,特别是在高延迟网络上。这是因为SCP实现了一种更有效的传输算法,不需要等待数据包确认。这导致了更快的速度,但代价是不能中断传输,所以与SFTP不同,SCP传输不能在不终止会话的情况下取消。

100
100
100
2010-04-26 18:10:26 +0000

简而言之,SCP只能用于传输文件,而且是非交互式的(即一切都要在命令行上指定)。SFTP则更为复杂,它允许用交互式的命令来做一些事情,比如创建目录、删除目录和文件(当然都要有系统权限)等等。

9
9
9
2016-01-20 11:04:11 +0000

从纯命令行的角度来看:

  • scp没有交互模式,也不能读取命令脚本,这意味着所有的东西都必须写在命令行上。
  • sftp有一个交互模式,可以从文件中读取命令。

这两个命令之间的另一个重要区别是,sftp虽然可以获取远程文件,但不能用一个命令行把本地文件放到远程位置,而scp可以做到这两点。

sftp get remote file

sftp user@host:/path/to/remote.file [/path/to/local.file]

scp get remote file

scp user@host:/path/to/remote.file [/path/to/local.file]

scp put remote file

scp /path/to/local.file user@host:[/path/to/remote.file]
``` 。
3
3
3
2016-05-25 03:52:12 +0000

SSHS ecure SH ell)是一种加密网络协议,允许远程登录和其他网络服务在不安全的网络上安全运行。

区别: SFTP是工作在交互模式(会话),SCP工作在非交互模式。使用SFTP我们可以访问远程文件系统,例如创建、删除和列出文件。

相同点: SCP( S ecure C opy P rotocol)和SFTP( S SH F ile T ransfer P rotocol)都是网络协议,支持网络上主机之间的文件管理。两者都使用SSH。 更多

2
2
2
2017-08-13 19:46:17 +0000

两种协议的大部分区别已经在其他答案中说过了,在 https://unix.stackexchange.com/q/8707/19088

根据 curl 的文档,另一个区别是 SCP 协议的可移植性不强,通常只在 Unix 系统之间工作。

顺便说一下, curl 同时实现了这两种协议,而且与默认的OpenSSH SFTP客户端实现不同,它对SFTP和SCP都是**不交互的。

还要注意的是,还有 FISH 协议,它允许你通过SSH传输文件,而不需要SCP或SFTP。据我所知,FISH还不是很流行,目前只有少数几个文件管理器 Midnight Commander 和一些基于KDE的文件管理器)和 Lftp 实现。