文章目录(Table of Contents)
简介
这一篇文章我们介绍 ftp,sftp 和 scp 三个传输文件的命令。下面是三者不同的简单介绍:
- FTP(File Transfer Protocol):基于TCP来传输文件,明文传输用户信息和数据;
- SFTP(SSH File Transfer Protocol,和FTP不一样):基于SSH来加密传输文件,可靠性高,可断点续传。
- SCP(Secure copy,based on SSH):基于SSH来加密拷贝文件,不可断点续传。
参考资料
- 【传输文件】文件传输协议FTP、SFTP和SCP
- scp加端口的用法(简单介绍了如何在 scp 命令上指定端口号)
- scp传输文件的命令
ftp 的使用
ftp 的命令如下所示(我们也可以下载有界面的版本,WinSCP):
- 登陆远程主机(可能会需要输入账号密码):
- ftp user@host # 如果显示 未连接,可以尝试下面的方式
- ftp host # 之后会有提示输入 user 和 password
- 针对本机的命令都加上l:
- lcd,lpwd
- 将本机文件上传到远程(使用 put 命令):
- put filename.txt [some/directory]
- 将当前文件夹下的文件上传到远程:
- mput *.* // multiple
- 下载远程文件到本地(使用 get 下载文件):
- get filename.file [some/directory]
- 下载目录下所有远程文件到本地:
- mget *.* [some/directory]
- 帮助:
- ?
- 退出:
- bye/exit/quit
在 windows 下的 terminal 上,使用 ftp 传输文件的时候可能会使用 ASCII 模式。我们需要修改为 binary的模式。具体可以参考链接,ftp binary。只需要进入 ftp 的交互界面,输入 binary
即可。
之后传输文件的时候,就会显示当前在 binary mode。
Windows 给出了一个详细的 ftp 的指南,可以参考下面的链接(这里的内容非常不错),Use the FTP Utility in a typical session
如果出现如下的报错:
- ftp server bind: address allready in use
此时我们需要使用被动模式,try using a passive connection with "ftp -p" instead, see if it helps...
sftp 的使用
SFTP 为 SSH 的一部份,是一种传输文件到服务器的安全方式。在SSH软件包中,已经包含了一个叫作 SFTP (Secure File Transfer Protocol) 的安全文件传输子系统,SFTP本身没有单独的守护进程,它必须使用sshd守护进程(端口号默认是22)来完成相应的连接操作。
SFTP同样是使用加密传输认证信息和传输的数据。所以,使用SFTP是非常安全的。但是,由于这种传输方式使用了加密与解密技术,所以传输效率比普通的FTP要低得多,如果您对网络安全性要求更高时,可以使用SFTP代替FTP。
SFTP 与 FTP 有着几乎一样的语法和功能。所以相关的命令和使用都可以参考上面的 ftp 的使用。
scp 的使用
SCP就是 Secure copy,是用来进行远程文件复制的,并且整个复制过程是加密的。数据传输使用ssh,并且和使用和 ssh 相同的认证方式,提供相同的安全保证。
下面是关于 scp 的详细的用法。其中 -P
是用来进行端口的指定。
- usage: scp [-346BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file]
- [-l limit] [-o ssh_option] [-P port] [-S program] source ... target
- 微信公众号
- 关注微信公众号
- QQ群
- 我们的QQ群号
评论