如何使用sftp命令?操作步骤与文件传输技巧详解

sftp(Secure File Transfer Protocol)是一种基于SSH协议的安全文件传输工具,相较于传统的FTP,sftp通过加密传输数据(使用SSH的加密机制),有效避免了信息泄露和篡改风险,广泛应用于服务器文件管理、数据备份等场景,本文将详细介绍sftp命令的使用方法,包括连接服务器、文件传输、目录管理及权限控制等核心操作,帮助用户快速上手。

怎么使用sftp命令

连接远程服务器

使用sftp连接远程服务器前,需确保目标服务器已启用SSH服务(默认监听22端口,可通过-P参数自定义端口),基本连接格式为:sftp [用户名]@[主机名],以用户名user连接IP为168.1.100的服务器,命令为:

sftp user@192.168.1.100

执行后会提示输入该用户的SSH密码(若使用密钥认证,需提前配置免密登录,可通过ssh-keygen生成密钥,并将公钥添加到服务器的~/.ssh/authorized_keys文件中),连接成功后,会显示sftp提示符(通常为sftp>),此时可输入相关命令进行操作。

基本文件操作

连接后,首先需要确认当前目录和文件结构。ls命令用于列出远程目录下的文件及子目录,支持-l参数显示详细信息(如权限、大小、修改时间等),

ls -l /home/user/  # 查看远程用户目录下的详细文件列表

cd命令用于切换远程目录,用法与Linux终端一致,如:

cd documents  # 进入远程服务器的documents子目录

pwd命令则显示当前所在的远程目录完整路径,方便定位文件位置,需要注意的是,sftp默认进入用户的家目录(如/home/user/),可通过cd /切换到根目录。

文件传输

文件传输是sftp的核心功能,上传和下载分别通过put和get命令实现,上传本地文件到远程服务器时,put命令的基本格式为:put [本地文件路径] [远程文件路径],将当前本地目录下的test.txt上传到远程服务器的/home/user/docs/目录,并重命名为remote.txt,命令为:

put test.txt /home/user/docs/remote.txt

若需上传整个目录,需添加-r参数(递归上传),如:

怎么使用sftp命令

put -r local_dir/ /home/user/remote_dir/  # 上传本地local_dir目录到远程remote_dir

下载远程文件到本地则使用get命令,格式为:get [远程文件路径] [本地文件路径],下载远程服务器上的data.zip到当前本地目录,命令为:

get data.zip ./

若需下载到指定目录,可完整指定路径,如:

get /home/user/docs/report.pdf /path/to/local/report.pdf

同样,-r参数可用于递归下载目录,如:

get -r remote_dir/ ./local_dir/  # 下载远程remote_dir目录到本地local_dir

目录与文件管理

除了文件传输,sftp还支持基本的目录和文件管理操作。mkdir命令用于创建远程目录,如:

mkdir new_folder  # 在当前远程目录下创建new_folder子目录

rmdir命令用于删除空目录,如:

rmdir empty_folder  # 删除远程empty_folder目录(需为空目录)

删除远程文件使用rm命令,如:

rm old_file.log  # 删除远程old_file.log文件

若需删除非空目录,需添加-r参数(rm -r non_empty_dir/),可通过rename命令重命名文件或目录,格式为:rename [旧名称] [新名称],如:

怎么使用sftp命令

rename old_name.txt new_name.txt  # 将远程文件old_name.txt重命名为new_name.txt

权限与高级参数

远程文件的权限可通过chmod命令修改,格式与Linux系统一致,如:

chmod 755 script.sh  # 将远程script.sh的权限设置为所有者可读、写、执行,组和其他用户可读、执行

sftp还支持一些高级参数,

  • -C:启用压缩传输(减少网络带宽占用,适合大文件传输),如sftp -C user@host;
  • -P:指定非默认SSH端口,如sftp -P 2222 user@host(服务器SSH端口为2222时);
  • -v:启用详细模式(显示传输过程中的详细信息,便于调试),如sftp -v user@host。

若需查看本地目录或文件,可使用lcd(切换本地目录)和lls(列出本地文件),如:

lcd /path/to/local  # 切换本地工作目录
lls                 # 列出当前本地目录下的文件列表

注意事项

  1. 安全性:始终优先使用sftp而非ftp,确保数据传输加密;若服务器允许,建议配置SSH密钥认证替代密码登录,提升安全性。
  2. 端口与权限:确保防火墙开放SSH端口(默认22),且用户对目标目录有足够的读写权限。
  3. 文件名处理:若文件名包含空格或特殊字符(如空格、、等),需用双引号括起来,如:
    put "my file.txt" "remote file.txt"
  4. 传输中断:sftp本身不支持断点续传,若传输中断需重新传输;对于大文件,可考虑使用rsync(支持断点续传)替代。

相关问答FAQs

问题1:sftp和ftp有什么区别?
解答:sftp基于SSH协议,数据传输全程加密(使用AES等加密算法),安全性高;而ftp是明文传输,用户名、密码及文件内容均可能被窃取,sftp使用单一端口(SSH端口),而ftp默认使用20(数据传输)和21(控制)两个端口,配置更复杂;sftp的命令与Linux终端类似(如ls、cd),ftp则使用独立命令集(如dir、cd)。

问题2:sftp传输文件时提示权限不足怎么办?
解答:权限不足通常是由于当前用户对目标目录或文件没有读写权限,可尝试以下方法:

  1. 检查目标目录权限:使用ls -l查看目录权限,确保用户有执行权限(进入目录需x权限)和写权限(创建/修改文件需w权限);
  2. 联系服务器管理员调整权限;
  3. 若上传文件,确保目标目录存在且有写权限,如mkdir -p /home/user/upload(创建不存在的目录并赋予递归权限),再执行put命令。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/15842.html

赞 (0)
酷番叔酷番叔
上一篇 2025年8月24日 08:13
下一篇 2025年8月24日 08:26

相关推荐

  • 国内云存储套餐,性价比哪家更高?如何选择合适方案?

    阿里云盘性价比高,百度网盘资源多,选择时需考虑存储空间、传输速度及设备生态需求。

    2026年2月14日
    22800
  • 命令执行失败时有哪些常见处理步骤与排查方法?

    命令执行失败是日常运维、开发或系统使用中常见的问题,处理时需遵循“观察现象→分析原因→针对性解决→验证结果”的流程,避免盲目操作导致问题复杂化,以下是详细处理步骤和方法,确认失败现象,收集关键信息命令执行失败时,首先需观察终端输出的错误信息,这是定位问题的核心线索,常见现象包括:直接报错:如“Command n……

    2025年8月24日
    47200
  • 怎么打开vs命令提示窗口

    Windows 系统中,按“Win + R”键,输入“devmgmt.

    2025年8月18日
    25300
  • 安全众测产品是什么?

    安全众测产品简介在数字化时代,网络安全威胁日益复杂,企业面临的攻击手段不断升级,传统的安全防护手段如防火墙、入侵检测系统等,往往难以应对新型漏洞和未知威胁,安全众测(Crowd Security Testing)作为一种创新的安全测试模式,通过汇聚全球安全专家的力量,帮助企业全面发现系统漏洞,提升安全防护能力……

    2025年11月23日
    23600
  • cmd怎么开启端口命令行

    在Windows系统中,端口的开放与关闭主要由防火墙控制,而非直接“开启”端口本身(端口是应用程序或服务监听的网络通信入口),通过命令提示符(cmd)可以高效配置防火墙规则,实现允许特定端口的入站或出站通信,以下是详细的操作步骤和注意事项,需以管理员身份运行cmd(右键点击cmd选择“以管理员身份运行”,否则会……

    2025年8月29日
    35000

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信