安全的文件传输程序
sftp [-1Cv] [-B bufsize] [-b batch-file] [-F ssh-conf] [-o ssh-opts]
[-P sftp-srv] [-R requests] [-S program] [-s subsys|sftp-srv] host
sftp [user@]host[:files]
sftp [user@]host[:dir[/]]
sftp -b batch-file [user@]host
sftp是一个类似于ftp的交互式文件传输程序,文件的传输是基于OpenSSH的加密传输机制实现的。同时,sftp也利用了OpenSSH的许多特性,如公钥认证与数据压缩等。利用sftp命令,可以连接、注册到指定FTP服务器,进入交互式的命令模式,或采用批处理的方式访问FTP服务器。其中,host是FTP服务器的主机名或IP地址。
如果FTP服务器支持非交互式认证方法(可利用ssh-keygen命令配置OpenSSH服务器实现),可采用第二种语法格式,自动连接FTP服务器,在获取指定的文件后立即返回。否则,在单独输入密码,成功地完成交互认证之后,仍可在自动获取指定的文件之后返回。其中,user是FTP服务器认可的用户名,host是FTP服务器的主机名或IP地址,files是欲下载的一个或一组文件。
同样,如果FTP服务器支持非交互式认证方法,可以利用第三种语法格式,自动连接FTP服务器,从指定的远程目录开始交互操作。否则,在单独输入密码,成功地完成交互认证之后,仍可从指定的远程目录开始交互操作。其中,user是FTP服务器认可的用户名,host是FTP服务器的主机名或IP地址,dir是FTP服务器中的一个目录。
在最后一种语法格式中,可以利用sftp的“-b”选项,以批处理的自动会话方式下载或上传文件。在采用这种运行方式之前,必须配置非交互式认证方式,以免在连接FTP服务器时要求输入密码。
-1 表示使用OpenSSH协议版本1。
-B bufsize 指定sftp传输文件时采用的缓冲区大小。缓冲区越大,往返应答的次数越少,但耗费的内存较大。默认的缓冲区是32 768个字节。
-b batch-file 采用批处理方式,从指定的输入文件而非标准输入中读取sftp命令,执行文件的传输。由于缺乏用户干预,用户的认证过程也需要采用非交互方式。在批处理过程中,如果其中的任何一个命令失败,如get、put、rename、ln、rm、mkdir、chdir、ls、lchdir、chmod、chown、chgrp、lpwd、df或lmkdir,sftp将会终止执行。若想避免因某个命令失败而影响整个文件传输过程,可在命令之前增加一个减号“-”字符,如“-rm /tmp/batch*”。
-C 启用压缩方式(把“-C”选项传递给ssh,通过ssh实现)。
-F ssh-conf 指定基于用户的ssh配置文件,直接传递给ssh。
-o ssh-opts 采用ssh_config配置文件的格式(如“-o Port=24”),向ssh传递指定的选项。当sftp命令没有单独的选项能够指定ssh选项时,“-o”选项是非常有用的。完整的ssh选项详见ssh_config配置文件手册页的说明。
-P sftp-srv 直接(而非通过ssh)连接到本地sftp服务器。这个选项主要用于调试客户机与服务器。
-R requests 指定在任何给定的时刻,最多可以同时处理多少文件传输请求。增大这个数值能够轻微改善文件传输的速度,但会增加内存的需求。默认的并发请求处理数量是64。
-S program 指定用于处理加密连接的程序。这个程序也必须能够处理ssh选项。
-s subsys | sftp-srv 指定远程系统中的OpenSSHv2子系统或sftp服务器的路径名。当sftp的运行环境是OpenSSHv1,或远程系统的sshd没有配置sftp子系统时,需要指定sftp服务器的路径名。
-v 显示sftp命令(包括ssh命令)的处理过程与调试信息,有助于诊断连接、认证与配置等问题。这个选项也传递给ssh。
一旦进入交互命令模式,sftp能够解释与执行下列一组类似于ftp的交互命令。在输入sftp交互命令时请注意:交互命令的名字不区分大小写字母。如果文件的路径名中含有空格字符,前后必须增加引号。如果文件路径名中含有Shell特殊字符,必须在其前面插入一个反斜线“\”转义符号。
bye 退出sftp程序。
cd dir 把远程主机的当前工作目录改换为指定的目录。
chgrp grp file 把指定文件file的用户组改为grp。其中,file可以包含通配符,因而能够匹配多个文件(或目录),grp必须是数字形式的用户组ID。
chmod mode file 修改指定文件的访问权限。其中,file可以包含通配符,因而能够匹配多个文件(或目录)。
chown own file 修改指定文件的属主。其中,file可以包含通配符,因而能够匹配多个文件(或目录),own必须是数字形式的用户ID。
df [-hi] [dir] 显示含有当前目录或指定目录的文件系统的使用情况。如果指定了“-h”选项,将采用适当的单位后缀显示容量信息。“-i”选项表示除了容量信息,还显示信息节点的统计数据。注意,并非所有的系统都支持此命令。
exit 退出sftp程序。
get [-P] rfile [lfile] 把远程文件rfile下载到本地系统,以指定的文件名lfile存储在本地系统中。如果未指定本地文件名,则以远程文件名命名之。rfile可以包含通配符,因而能够匹配多个文件。在此情况下,如果指定了lfile参数,则必须是一个目录。如果同时指定了“-P”选项,文件的访问权限和最近访问时间等属性信息将保持一致。
help 显示交互命令的帮助信息。
lcd path 把本地系统中的工作目录改换到指定的目录。
lls [ls-opts [dir]] 列出本地系统指定目录或当前目录中的文件。其中,ls-opts可以是本地系统ls命令支持的任何选项,dir可以包含通配符,因而能够匹配多个目录。
lmkdir dir 在本地系统中创建指定的目录。
ln file linkfile 创建一个引用file的符号链接文件linkfile。
lpwd 显示本地工作目录。
ls [-1aflnrSt] [dir] 列出远程系统指定目录或当前目录中的文件。dir可以包含通配符,因而能够匹配多个目录。此外,ls命令还支持下列选项,以限定命令的输出结果:
-1 生成单列输出。
-a 显示以句点“.”为文件名首字符的隐藏文件。
-f 禁止输出数据排序。默认的排序方法是文件名的字符顺序。
-l 相当于Linux的“ls -l”命令,显示文件的访问权限等信息。
-n 类似于“-l”选项,区别是显示数字形式的用户和用户组信息。
-r 逆向排序。
-S 按文件的大小排序。
-t 按文件的最近修改时间排序。
lumask umask 设置本地系统的创建文件掩码(umask)。
mkdir dir 在远程主机中创建指定的目录。
progress 开关传输进度的显示。
put [-P] lfile [rfile] 把本地文件lfile上传到远程系统,以指定的文件名rfile存储在远程系统中。如果未指定远程文件名,则以本地文件名命名之。lfile可以包含通配符,因而能够匹配多个文件。在此情况下,如果指定了rfile参数,则必须是一个目录。如果同时指定了“-P”选项,文件的访问权限和最近访问时间等属性信息将保持一致。
pwd 显示远程工作目录。
quit 退出sftp程序。
rename file newfile 把远程系统中的文件file重新命名为newfile。
rm path 删除指定的远程文件。
rmdir path 删除指定的远程目录。
symlink file linkfile 创建一个引用file的符号链接文件linkfile。
version 显示sftp的协议版本。
![cmd] 在本地Shell环境中执行指定的命令。如果未指定命令,直接进入本地Shell。
? 相当于help,显示交互命令的帮助信息。
1. 使用sftp命令访问vsFTP服务器、查询文件,然后下载一个指定的文件。
$ sftp iscas Connecting to iscas... gqxing@iscas's password: sftp> ls -l drwx------ 6 gqxing gqxing 4096 Dec 17 22:39 conf drwxrwxr-x 2 gqxing gqxing 4096 Dec 16 17:44 docs drwx------ 3 gqxing gqxing 4096 Dec 17 22:44 script -rw-r--r-- 1 gqxing gqxing 40491 Dec 19 15:59 vsftpd.conf5 sftp> get filelist Fetching /home/gqxing/vsftpd.conf5 to vsftpd.conf5 /home/gqxing/vsftpd.conf5 100% 40KB 39.5KB/s 00:00 sftp> exit $
2. 自动连接FTP服务器,获取指定的文件后返回。
$ sftp gqxing@iscas:/etc/profile Connecting to iscas... Fetching /etc/profile to profile /etc/profile 100% 1459 1.4KB/s 00:00 $
3. 自动连接FTP服务器,从指定的远程目录开始交互操作。
$ sftp gqxing@iscas:/etc/ssh Connecting to iscas... Changing to: /etc/ssh sftp> pwd Remote working directory: /etc/ssh sftp>
4. 下面的例子说明如何采用批处理方式下载一个文件。
$ cat getfile cd /usr/share/doc/openssh-5.3p1 lcd /home/gqxing/doc get README bye $ sftp -b getfile gqxing@iscas sftp> cd /usr/share/doc/openssh-5.3p1 sftp> lcd /home/gqxing/doc sftp> get README Fetching /usr/share/doc/openssh-5.3p1/README to README sftp> bye $ ls -l total 8 -rw-r--r--. 1 gqxing gqxing 2719 Mar 24 08:21 README -rw-rw-r--. 1 gqxing gqxing 68 Mar 24 08:20 getfile $
索引:A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z