SFTP命令
SFTP介绍
SFTP是SSH File Transfer Protocol的缩写,安全文件传送协议。SFTP与FTP有着几乎一样的语法和功能。SFTP为SSH的其中一部分,是一种传输档案至 Blogger 伺服器的安全方式。其实在SSH软件包中,已经包含了一个叫作SFTP的安全文件信息传输子系统,SFTP本身没有单独的守护进程,它必须使用sshd守护进程(端口号默认是22)来完成相应的连接和答复操作,所以从某种意义上来说,SFTP并不像一个服务器程序,而更像是一个客户端程序。
SFTP登陆方法
sftp HostIP
------默认用户登录
sftp user@HostIP
------指定用户'user'登录
之后会提示输入用户密码验证,验证成功后即登录成功,可进行命令操作.
命令?
可以查看命令帮助信息,如下
kei@kei-KVM:~/Desktop$ sftp 9.200.76.179
ryuu@9.200.76.179's password:
Connected to 9.200.76.179.
sftp> ?
Available commands:
bye 退出 sftp
cd path 更改远程目录到 'path'
chgrp [-h] grp path 将文件 'path' 的组更改为 'grp'
chmod [-h] mode path 将文件 'path' 的权限更改为 'mode'
chown [-h] own path 将文件 'path' 的属主更改为 'own'
df [-hi] [path] 显示当前目录的统计信息或包含 'path' 的文件系统
exit 退出 sftp
get [-afpR] remote [local] 下载文件
help 显示这个帮助文本
lcd path 更改本地目录到 'path'
lls [ls-options [path]] 显示本地目录列表
lmkdir path 创建本地目录
ln [-s] oldpath newpath 符号链接远程文件
lpwd 显示本地工作目录
ls [-1afhlnrSt] [path] 显示远程目录列表
lumask umask 将本地umask设置为 'umask'
mkdir path 创建远程目录
progress 切换是否显示文件传输进度
put [-afpR] local [remote] 上传文件
pwd 显示远程工作目录
quit 退出 sftp
reget [-fpR] remote [local] 恢复下载文件
rename oldpath newpath 重命名远程文件
reput [-fpR] local [remote] 恢复上传文件
rm path 删除远程文件
rmdir path 删除远程目录
symlink oldpath newpath 符号链接远程文件
version 显示 SFTP 版本信息
!command 在本地shell中执行 'command'
! 启动本地shell
? 帮助信息
sftp>
常用命令
- 登录
sftp HostIP
------默认用户登录
sftp user@HostIP
------指定用户'user'登录
之后会提示用户输入密码,输入password认证完成后,就成功建立了sftp连接.
kei@kei-KVM:~/Desktop$ sftp 9.200.76.179
ryuu@9.200.76.179's password:
Connected to 9.200.76.179.
sftp>
-
退出
退出命令有3个,直接输入一个回车即断开sftp连接
bye
quit
exit
-
help
当我们不太清楚sftp命令的时候,我们就输入hlep
命令,就可以知道sftp支持哪些命令及其语法格式. -
pwd
和lpwd
pwd是看远端服务器的目录, 即sftp服务器默认的当前目录
lpwd是看linux本地目录 -
ls
和lls
ls是看sftp服务器下当前目录下的列表
lls是看linux当前目录下的列表 -
put a.txt
这个是把linux当前目录下的a.txt文件上传到sftp服务器的当前目录下。
sftp> put /home/ryuu/test.txt
Uploading /home/ryuu/test.txt to /home/ryuu/test.txt
/home/ryuu/test.txt 100% 0 0.0KB/s 00:00
sftp> ls
Desktop Documents Downloads IOSAPP Pictures
Templates config.json derby.log fontconfig hello
nohup.out share test.txt
sftp>
-
get
这个是把sftp服务器的文件下载到linux当前目录下
sftp> get /home/ryuu/hello
Fetching /home/ryuu/hello to hello
/home/ryuu/hello 100% 174 45.4KB/s 00:00
sftp>
-
!command
这个是指在linux上执行command这个命令, 比如!ls是列举linux当前目录下的东东, !rm a.txt是删除linux当前目录下的a.txt文件。
这个命令非常非常有用, 因为在sftp> 后输入命令, 默认值针对sftp服务器的, 所以执行rm a.txt删除的是sftp服务器上的a.txt文件, 而非本地的linux上的a.txt文件。
sftp> ! w
10:27:39 up 2:07, 1 user, load average: 1.04, 1.38, 1.96
USER TTY 来自 LOGIN@ IDLE JCPU PCPU WHAT
kei :0 :0 08:20 ?xdm? 38:27 0.01s /usr/lib/gdm3/g
sftp>
FTP和SFTP的区别
-
ftp协议
ftp是TCP/IP协议组中的协议之一,TP协议由两个部分组成:
ftp服务器(用来存储文件)
ftp客户端(用户可以使用ftp客户端通过ftp协议访问位于ftp服务器上的资源)
默认情况下ftp协议使用TCP端口中的21这个端口。 -
SFTP协议
sftp是SSH File Transfer Protocol的缩写,安全文件传送协议。sftp与FTP有着几乎一样的语法和功能。sftp为SSH的其中一部分,是一种传输档案至 Blogger 伺服器的安全方式。
默认情况下sftp协议使用端口号是22(ssh的端口号) -
两者的主要区别
- 链接方式:ftp使用TCP端口21上的控制连接建立连接。而sftp是在客户端和服务器之间通过SSH协议(TCP端口22)建立的安全连接来传输文件。
- 安全性:sftp使用加密传输认证信息和传输的数据,所以使用sftp相对于ftp是非常安全。
- 效率:sftp这种传输方式使用了加密解密技术,所以传输效率比普通的ftp要低得多。