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
[email protected]'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> 

常用命令

  1. 登录
    sftp HostIP ------默认用户登录
    sftp user@HostIP ------指定用户'user'登录
    之后会提示用户输入密码,输入password认证完成后,就成功建立了sftp连接.
kei@kei-KVM:~/Desktop$ sftp 9.200.76.179
[email protected]'s password: 
Connected to 9.200.76.179.
sftp> 
  1. 退出
    退出命令有3个,直接输入一个回车即断开sftp连接
    bye quit exit

  2. help
    当我们不太清楚sftp命令的时候,我们就输入hlep命令,就可以知道sftp支持哪些命令及其语法格式.

  3. pwdlpwd
    pwd是看远端服务器的目录, 即sftp服务器默认的当前目录
    lpwd是看linux本地目录

  4. lslls
    ls是看sftp服务器下当前目录下的列表
    lls是看linux当前目录下的列表

  5. 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> 
  1. 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>
  1. !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的区别

  1. ftp协议
    ftp是TCP/IP协议组中的协议之一,TP协议由两个部分组成:
    ftp服务器(用来存储文件)
    ftp客户端(用户可以使用ftp客户端通过ftp协议访问位于ftp服务器上的资源)
    默认情况下ftp协议使用TCP端口中的21这个端口。

  2. SFTP协议
    sftp是SSH File Transfer Protocol的缩写,安全文件传送协议。sftp与FTP有着几乎一样的语法和功能。sftp为SSH的其中一部分,是一种传输档案至 Blogger 伺服器的安全方式。
    默认情况下sftp协议使用端口号是22(ssh的端口号)

  3. 两者的主要区别

  • 链接方式:ftp使用TCP端口21上的控制连接建立连接。而sftp是在客户端和服务器之间通过SSH协议(TCP端口22)建立的安全连接来传输文件。
  • 安全性:sftp使用加密传输认证信息和传输的数据,所以使用sftp相对于ftp是非常安全。
  • 效率:sftp这种传输方式使用了加密解密技术,所以传输效率比普通的ftp要低得多。

你可能感兴趣的:(SFTP命令)