插件窝 干货文章 SFTP命令行操作指南

SFTP命令行操作指南

远程 文件 命令 传输 396    来源:    2025-05-07

SFTP命令行操作指南

SFTP (SSH File Transfer Protocol) 是一种安全的文件传输协议,基于SSH协议提供加密的文件传输功能。以下是SFTP命令行操作的详细指南:

基本连接

连接到远程服务器

sftp username@hostname

或指定端口(非默认22端口时):

sftp -P port_number username@hostname

使用密钥认证连接

sftp -i /path/to/private_key username@hostname

常用命令

本地操作命令

  • lls - 列出本地当前目录内容
  • lpwd - 显示本地当前工作目录
  • lcd - 更改本地工作目录

远程操作命令

  • ls - 列出远程当前目录内容
  • pwd - 显示远程当前工作目录
  • cd - 更改远程工作目录
  • mkdir - 在远程创建目录
  • rmdir - 删除远程空目录
  • rm - 删除远程文件
  • chmod - 更改远程文件权限
  • chown - 更改远程文件所有者
  • chgrp - 更改远程文件组

文件传输命令

  • put - 上传文件到远程服务器

    put local_file [remote_file]  # 上传并可选重命名
    
  • get - 从远程服务器下载文件

    get remote_file [local_file]  # 下载并可选重命名
    
  • mput - 上传多个文件(支持通配符)

    mput *.txt
    
  • mget - 下载多个文件(支持通配符)

    mget *.log
    

其他命令

  • !command - 在本地执行shell命令
  • exitquit - 退出SFTP会话
  • help - 显示帮助信息

实用技巧

批量传输

sftp -b batchfile.txt username@hostname

其中batchfile.txt包含一系列SFTP命令,例如:

cd /remote/directory
lcd /local/directory
mput *.pdf
quit

递归传输目录

SFTP本身不支持递归传输,但可以使用以下方法:

put -r local_directory  # 某些SFTP客户端支持

或使用scp -r替代:

scp -r local_dir username@hostname:remote_dir

限制带宽

sftp -l 1024 username@hostname  # 限制为1024 Kbit/s

常见问题解决

  1. 连接被拒绝

    • 检查SSH服务是否运行
    • 确认端口是否正确
    • 检查防火墙设置
  2. 认证失败

    • 确认用户名和密码正确
    • 检查密钥文件权限(应为600)
    • 确认服务器上已添加公钥
  3. 文件权限问题

    • 使用chmod命令调整权限
    • 检查目标目录是否有写权限
  4. 传输中断

    • 使用regetreput命令恢复中断的传输
    • 考虑使用rsync进行大文件传输

安全建议

  1. 尽可能使用密钥认证而非密码
  2. 限制SFTP用户的访问目录(通过chroot)
  3. 定期更新SSH服务器软件
  4. 禁用root用户的SFTP访问

通过掌握这些SFTP命令,您可以高效安全地在本地和远程系统之间传输文件。