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

SFTP是Secure File Transfer Protocol,提供安全文件传输。它与FTP相似但使用加密技术,适合对安全性要求高的环境。本文介绍了SFTP的用法,包括连接、上传、下载及常用命令,适用于在Linux服务器中进行文件操作的情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、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/2020.txt  /home/ilog/test/    //put 本地路径/文件名 远程路径

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

本地路径:

远程路径:

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

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

本地路径:

远程路径: 

4.下载

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

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

远程路径: 

本地路径:

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

下载文件夹:把远程服务器的/home/ilog/test目录下面的data文件夹下载到本地服务器的D:/MyKit/test目录下。
sftp> cd /home/ilog/test
sftp> lcd D:/MyKit/test
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 命令来查看帮助文档

sftp> help
Available commands:
bye                                Quit sftp
cd path                            Change remote directory to 'path'
chgrp grp path                     Change group of file 'path' to 'grp'
chmod mode path                    Change permissions of file 'path' to 'mode'
chown own path                     Change owner of file 'path' to 'own'
df [-hi] [path]                    Display statistics for current directory or
                                   filesystem containing 'path'
exit                               Quit sftp
get [-afPpRr] remote [local]       Download file
reget [-fPpRr] remote [local]      Resume download file
reput [-fPpRr] [local] remote      Resume upload file
help                               Display this help text
lcd path                           Change local directory to 'path'
lls [ls-options [path]]            Display local directory listing
lmkdir path                        Create local directory
ln [-s] oldpath newpath            Link remote file (-s for symlink)
lpwd                               Print local working directory
ls [-1afhlnrSt] [path]             Display remote directory listing
lumask umask                       Set local umask to 'umask'
mkdir path                         Create remote directory
progress                           Toggle display of progress meter
put [-afPpRr] local [remote]       Upload file
pwd                                Display remote working directory
quit                               Quit sftp
rename oldpath newpath             Rename remote file
rm path                            Delete remote file
rmdir path                         Remove remote directory
symlink oldpath newpath            Symlink remote file
version                            Show SFTP version
!command                           Execute 'command' in local shell
!                                  Escape to local shell
?                                  Synonym for help
### 如何使用 SFTP 命令进行远程文件传输 SFTP 是一种通过 SSH 协议加密的安全文件传输方式,允许用户在本地计算机远程服务器之间上传下载以及管理文件。以下是关于如何使用 SFTP 命令的一些基本指南: #### 连接到远程服务器 要连接到远程服务器,可以使用 `sftp` 命令加上目标主机名或 IP 地址: ```bash sftp username@hostname ``` 其中 `username` 是您的用户名,而 `hostname` 可以是域名或者 IP 地址[^1]。 如果需要指定端口号,则可以通过 `-oPort=port_number` 参数来设置: ```bash sftp -oPort=2222 username@hostname ``` #### 浏览远程文件系统 一旦成功登录,您可以像操作 FTP 那样浏览远程目录结构。一些常用的命令如下所示: - 列出当前目录中的文件: ```bash ls ``` - 更改远程目录路径: ```bash cd /path/to/directory ``` 对于本地系统的操作,在前面添加字母 “l”,表示 Local(本地)。例如: - 查看本地机器上的当前目录内容: ```bash lls ``` - 改变本地工作目录位置: ```bash lcd ~/local/path/ ``` #### 文件传输指令 为了将单个文件从本机发送至远端服务器,可采用 put 指令;反之则利用 get 方法获取数据回来。 - 将名为 example.txt 的文档放置于远程站点根部下: ```bash put example.txt ``` - 下载 remote_file 至当前位置作为 local_copy : ```bash get remote_file local_copy ``` 还可以一次性处理整个文件夹的内容,只需附加参数 "-r" 实现递归复制功能即可完成任务。 - 上载整个 my_folder/ 资料夹及其内部所有项目到 server:/destination/folder/: ```bash put -r my_folder/ destination/folder/ ``` 同样适用于取回资料的动作。 - 把 server_path/download_this 整体拉回到 ./here_it_is 中保存下来: ```bash get -r server_path/download_this here_it_is ``` 结束会话很简单,输入 exit 或者 bye 关闭链接断开连接[^2]。 ```bash exit ``` ### 注意事项 尽管这里提供了基础指导方针帮助理解怎样运用 Linux shell 内置工具——即 sftp 客户端程序来进行简单的档案交换活动,但在实际应用过程中可能还会遇到更多复杂情况需进一步学习掌握高级技巧才能妥善解决各种可能出现的问题情境。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值