Linux SFTP 命令行使用指南,如何在Linux命令行中高效使用SFTP传输文件?,如何在Linux命令行中3步搞定SFTP文件传输?

04-11 1645阅读
** ,Linux SFTP(SSH文件传输协议)提供了一种安全高效的文件传输方式,通过命令行使用SFTP时,首先通过sftp username@host连接远程服务器,输入密码或使用SSH密钥认证,常用命令包括:put上传本地文件到远程,get下载远程文件到本地,ls查看远程目录,lls查看本地目录,cd切换远程路径,lcd切换本地路径,支持通配符(如mput *.txt批量上传)和递归传输目录(put -r),退出时输入exitquit,为提高效率,可结合scprsync进行批量同步,或通过公钥认证避免重复输入密码,SFTP在保证数据加密的同时,简化了命令行文件管理操作

SFTP协议核心解析

SFTP(SSH File Transfer Protocol)是基于SSH协议的安全文件传输工具,采用加密通道进行数据传输,相比传统FTP具有以下优势:

  • 数据全程AES加密传输,避免嗅探风险
  • 默认集成在SSH服务中(端口22),无需额外配置
  • 支持公钥认证机制,安全性远超FTP密码认证
  • 完整的文件权限管理和目录操作功能

连接方式全解析

1 基础连接方法

sftp username@server_ip       # 使用默认SSH端口(22)
sftp user@example.com         # 连接域名主机

2 高级连接参数

参数 作用 示例
-P 指定非标准端口 sftp -P 2222 user@host
-i 使用密钥认证 sftp -i ~/.ssh/id_rsa user@host
-v 显示详细连接过程 sftp -v user@host
-C 启用压缩传输 sftp -C user@host

Linux SFTP 命令行使用指南,如何在Linux命令行中高效使用SFTP传输文件?,如何在Linux命令行中3步搞定SFTP文件传输? 第1张 图1:SFTP加密隧道建立过程(图片来源网络)

文件操作命令大全

1 本地文件管理(前缀l

lls         # 列出本地文件
lpwd        # 显示本地当前路径
lcd ~/docs  # 切换本地目录
lmkdir temp # 创建本地文件夹

2 远程服务器操作

cd /var/www      # 切换远程目录
mkdir uploads    # 创建远程目录
chmod 755 script.sh  # 修改文件权限
df -h            # 查看磁盘空间(需服务器支持)

3 文件传输命令对比

操作类型 单文件命令 批量操作命令
上传文件 put local_file mput *.jpg
下载文件 get remote_file mget log_*.txt
目录传输 put -r local_dir get -r remote_dir

高阶应用场景

1 自动化批量传输

#!/bin/bash
# 自动备份脚本
sftp -b /dev/stdin user@backup_server <<EOF
put /var/log/nginx/*.log
mkdir /backup/$(date +%F)
put db_backup.sql /backup/$(date +%F)/
EOF

2 断点续传方案

sftp> reget large_file.zip   # 续传下载
sftp> reput bigdata.tar.gz   # 续传上传

3 传输优化技巧

# 启用压缩+限速传输(1MB/s)
sftp -C -o LimitRate=1024 user@host
# 后台持续传输(配合nohup)
nohup sftp -b batch_commands.txt user@host &

安全强化指南

1 认证安全

# 生成ED25519密钥对
ssh-keygen -t ed25519 -f ~/.ssh/sftp_key
# 密钥连接示例
sftp -o "IdentitiesOnly yes" -i ~/.ssh/sftp_key user@host

2 传输审计

# 启用详细日志记录
sftp -o LogLevel=DEBUG -o LogFile=/var/log/sftp_audit.log user@host

3 防火墙配置建议

# 限制SFTP访问IP(示例)
iptables -A INPUT -p tcp --dport 22 -s 192.168.1.0/24 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j DROP

故障排查手册

1 常见错误解决方案

错误现象 解决方案
中文乱码 添加-o Charset=utf8参数
连接超时 使用-o ConnectTimeout=60
权限拒绝 检查~/.ssh/authorized_keys权限应为600
主机验证失败 删除~/.ssh/known_hosts对应记录

2 调试模式启用

sftp -vvv user@problem_host 2> debug.log

版本更新说明

  1. 新增ED25519密钥认证方案
  2. 补充防火墙配置建议
  3. 增加传输速率控制参数
  4. 优化命令表格对比展示
  5. 添加自动化脚本示例
  6. 完善调试诊断方法
  7. 所有图片保留来源声明

本指南适用于:

  • Linux系统管理员
  • 运维工程师
  • 需要安全传输敏感数据的用户
  • 自动化部署开发人员

    免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

    目录[+]