SFTP

SFTP 是 Secure File Transfer Protocol 的缩写,安全文件传送协议。可以为传输文件提供一种安全的网络的加密方法。SFTP 与 FTP 有着几乎一样的语法和功能。

SFTP 为 SSH 的其中一部分,是一种传输档案至 Blogger 伺服器的安全方式。其实在 SSH 软件包中,已经包含了一个叫作 SFTP(Secure File Transfer Protocol) 的安全文件信息传输子系统,SFTP 本身没有单独的守护进程,它必须使用 sshd 守护进程(端口号默认是22)来完成相应的连接和答复操作,所以从某种意义上来说,SFTP 并不像一个服务器程序,而更像是一个客户端程序。

SFTP 同样是使用加密传输认证信息和传输的数据,所以,使用 SFTP 是非常安全的。但是,由于这种传输方式使用了加密/解密技术,所以传输效率比普通的 FTP 要低得多,如果您对网络安全性要求更高时,可以使用 SFTP 代替 FTP。

Windows 中可以使用 Core FTP、FileZilla、 WinSCP、Xftp 这样一些图形客户端来连接 SFTP 进行文件或目录的上传、下载,建立、删除等操作。而 Linux 下可使用命令行来操作 SFTP,参考下面常用命令。

常用命令

在 SFTP 的环境下的操作就和一般 FTP 的操作类似,ls、rm、mkdir、dir、pwd… 等指令都是对远端进行操作,如果要对本地操作,只需在上述的指令上加 ‘l’ 变为:lls、lcd、lpwd…。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# 登录
sftp xxx.xxx.xxx.xxx # 登录 root 用户
sftp zygf@xxx.xxx.xxx.xxx # 登录 zygf 用户

# 查看sftp支持哪些命令
help

# 查看当前目录下文件
ls

# 指定目录
cd

# 查看当前目录
pwd

# 上传
put /path/filename(本地主机) /path/filename(远端主机);

# 下载
get /path/filename(远端主机) /path/filename(本地主机)。

另外提一下sftp在非正规端口(正规的是22号端口)登录:sftp -o port=1000 username@remote ip.

# 退出
quit / bye / exit

注:WinSCP 上通过 sftp 可以连接远程 Linux 主机,但是 ftp 不可以。这是因为,在 Linux 上,SFTP 和 FTP 是两个不同的服务,SFTP 为 SSH 的一部分,开通了 SSH 意味着 SFTP 开通了,但不意味着 FTP 也开通了,FTP 也需要手动开启,Linux 下开源的 FTP 实现是 Vsftp。