如何使用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的核心功能,上传和下载分别通过putget命令实现,上传本地文件到远程服务器时,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终端类似(如lscd),ftp则使用独立命令集(如dircd)。

问题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

相关推荐

  • 如何快速查找特定文件?

    在Linux或Unix系统中,cd命令本身不能直接用于查找文件,因为它仅用于切换工作目录(Change Directory),但你可以通过结合其他命令定位文件路径后,再用cd进入其所在目录,以下是详细操作流程:核心思路:先查找文件路径,再用cd进入目录方法1:使用find命令定位文件# 输出结果可能为:/hom……

    2025年7月25日
    6100
  • 电脑如何启动命令?启动命令的详细操作步骤有哪些?

    命令行工具是电脑高效管理、系统维护及自动化操作的核心手段,无论是Windows的CMD、macOS的Terminal还是Linux的Shell,掌握其启动方法能帮助用户快速执行网络配置、文件管理、系统诊断等任务,不同操作系统和场景下,启动命令行工具的方式存在差异,本文将详细说明主流操作系统的命令启动方法,涵盖正……

    2025年8月28日
    8500
  • 安全基线检查工具

    安全基线检查工具是保障信息系统安全的重要技术手段,通过对系统配置、软件版本、权限管理等关键项进行自动化检测,帮助用户快速识别潜在风险并符合行业合规要求,这类工具在金融、政务、企业等场景中广泛应用,已成为安全运维体系的基础组件,安全基线检查工具的核心功能安全基线检查工具的核心功能在于将安全标准转化为可执行的检测规……

    2025年11月29日
    1400
  • 如何添加命令按钮?

    在Visual Basic(VB)窗体中添加命令按钮(CommandButton)是开发Windows应用程序的基础操作,以下是详细步骤,适用于VB6和VBA环境(如Excel、Access的窗体设计),确保操作清晰且符合最佳实践:打开工具箱并选择控件在VB集成开发环境(IDE)中,打开目标窗体(Form),确……

    2025年6月14日
    8200
  • 命令行中line命令如何表示?

    命令行指令通常由命令名、选项(常以短横线“-”或双横线“–”引导)和参数组成,各部分用空格分隔,选项用于修改命令行为,参数指定操作对象或提供必要信息。

    2025年8月8日
    6300

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信