SFTP命令用法(上传和下载 )

时间:2024-10-10 07:09:09

一、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。

二、说明

为了数据和服务的安全,很多生产环境中的Linux服务器不能使用外网环境,在只有SSH连接的情况下,传输文件变得很不方便。再加上Linux服务器并未安装用于上传和下载的lrzsz软件,又不能及时下载安装,同时Xftp和scp也无法使用,此时可考虑使用SFTP完成相关操作。

FTP是一种方便数据共享的文件传输协议,包括一个FTP服务器和多个ftp客户端,FTP客户端通过ftp协议从服务器上下载资源;SFTP是Secure File Transfer Protocol(安全文件传输协议)的缩写,可以为传输文件提供一种安全的网络的加密方法;SFTP协议是在FTP的基础上,对数据采取了加密/解密技术,使数据传输更安全。SFTP的传输效率比FTP的低很多。

三、用法 

1.软件环境

本文选择SecureCRT工具进行具体操作说明,前文有SecureCRT使用介绍这里就不赘述了。

2.SFTP建立连接

sftp username@ip  //sftp 用户名@服务器IP地址

输入密码就可以登录了

说明:如果sftp命令可以登录,但是无法获取本地文件路径如下图(lpwd:显示本地路径,pwd:显示远程路径)

这里使用另一种sftp连接方式如下图:

3.上传

put  D:/MyKit/test/  /home/ilog/test/    //put 本地路径/文件名 远程路径

  1. 上传文件:  把本地服务器的D:/MyKit/test目录下面的2020.txt文件上传到远程服务器的/home/ilog/test目录下。
  2. sftp> lcd D:/MyKit/test
  3. sftp> cd /home/ilog/test
  4. sftp> put 2020.txt

本地路径:

远程路径:

put  -r  D:/MyKit/test/logs  /home/ilog/test/    //put -r  本地路径/文件夹名 远程路径

  1. 上传文件夹:把本地服务器的D:/MyKit/test目录下面的logs文件夹上传到远程服务器的/home/ilog/test目录下。
  2. sftp> lcd D:/MyKit/test
  3. sftp> cd /home/ilog/test
  4. sftp> put -r log

本地路径:

远程路径: 

4.下载

get  /home/ilog/test/  D:/MyKit/test/  //get 远程路径/文件名 本地路径

  1. 下载文件: 把远程服务器的/home/ilog/test目录下面的0824.txt文件下载到本地服务器的D:/MyKit/test目录下。
  2. sftp> cd /home/ilog/test
  3. sftp> lcd D:/MyKit/test
  4. sftp> get 0824

远程路径: 

本地路径:

get  -r  /home/ilog/test/data  D:/MyKit/test/  //get -r  远程路径/文件夹名 本地路径

  1. 下载文件夹:把远程服务器的/home/ilog/test目录下面的data文件夹下载到本地服务器的D:/MyKit/test目录下。
  2. sftp> cd /home/ilog/test
  3. sftp> lcd D:/MyKit/test
  4. sftp> get -r data

 远程路径: 

 

 本地路径:

四、常用命令及注意说明

1.常用命令

get --下载

put --上传

clear --清屏

exit、quit --断开连接

help --帮助

 远程端服务器的操作指令:

ls --显示目录

rm --删除

cd --切换路径

mkdir --创建目录

pwd --显示当前路径
 本地端服务器的操作指令(在远程指令前加l(local)即可): 

lls --显示目录

lrm --删除

lcd --切换路径

lmkdir --创建目录

lpwd --显示当前路径

2.注意说明

Windows环境路径和Linux环境路径的写法要注意区分,不然可能get和put时无法获取正常路径导致失败;还有登录服务器的用户权限也有要求,无正常读写权限的文件及文件目录,可能无法操作(需要通过命令开通相应权限)从来导致失败。

附:在 SFTP 解释器中可以使用 help 命令来查看帮助文档

  1. sftp> help
  2. Available commands:
  3. bye Quit sftp
  4. cd path Change remote directory to 'path'
  5. chgrp grp path Change group of file 'path' to 'grp'
  6. chmod mode path Change permissions of file 'path' to 'mode'
  7. chown own path Change owner of file 'path' to 'own'
  8. df [-hi] [path] Display statistics for current directory or
  9. filesystem containing 'path'
  10. exit Quit sftp
  11. get [-afPpRr] remote [local] Download file
  12. reget [-fPpRr] remote [local] Resume download file
  13. reput [-fPpRr] [local] remote Resume upload file
  14. help Display this help text
  15. lcd path Change local directory to 'path'
  16. lls [ls-options [path]] Display local directory listing
  17. lmkdir path Create local directory
  18. ln [-s] oldpath newpath Link remote file (-s for symlink)
  19. lpwd Print local working directory
  20. ls [-1afhlnrSt] [path] Display remote directory listing
  21. lumask umask Set local umask to 'umask'
  22. mkdir path Create remote directory
  23. progress Toggle display of progress meter
  24. put [-afPpRr] local [remote] Upload file
  25. pwd Display remote working directory
  26. quit Quit sftp
  27. rename oldpath newpath Rename remote file
  28. rm path Delete remote file
  29. rmdir path Remove remote directory
  30. symlink oldpath newpath Symlink remote file
  31. version Show SFTP version
  32. !command Execute 'command' in local shell
  33. ! Escape to local shell
  34. ? Synonym for help