CentOS下使用SFTP传输大文件的实用操作指南
一 环境准备与连接
ssh -V。sftp user@your_server_ip,进入交互式 SFTP 后使用 put/get 进行传输。二 交互式SFTP常用命令与示例
put local_file /remote/path/;下载文件:get /remote/file /local/path/。put -r local_dir /remote/dir;get -r /remote/dir ./local_dir。l 开头(如 lls、lcd),远端用常规命令(如 ls、cd)。sftp> put largefile.tar.gz /backups/largefile.tar.gz
sftp> get -r /backups/myfolder ./
nohup/& 后台,需借助 screen/tmux 保持会话。三 提升大文件传输稳定性与效率的实用技巧
-C 开启 SSH 压缩(对可压缩数据有效,能一定程度提升速度)。scp -l <速率_Kbit/s> 限速(单位为 Kbit/s,换算为 KB/s 需除以 8)。rsync -avzP --partial local_file user@ip:/remote/filepv local_file | sftp user@ip <<< $'put - /remote/file'# 分割:每块 1G
split -b 1G bigfile bigfile.part.
# 传输所有分片
sftp user@ip << EOF
put bigfile.part.*
EOF
# 远端合并
cat bigfile.part.* > /remote/bigfile
rm -f bigfile.part.*
四 服务端安全与目录权限配置示例
/etc/ssh/sshd_config,启用 internal-sftp 并限制 SFTP 用户的家目录:# 注释原有 Subsystem 行,启用内置 SFTP
#Subsystem sftp /usr/libexec/openssh/sftp-server
Subsystem sftp internal-sftp
Match Group sftp
ChrootDirectory /home/%u
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
groupadd sftp
useradd -g sftp -s /sbin/nologin user1
passwd user1
chown root:sftp /home/user1
chmod 755 /home/user1
mkdir -p /home/user1/upload
chown -R user1:sftp /home/user1/upload
chmod -R 755 /home/user1/upload
systemctl restart sshd 或 service sshd restart。sftp user1@your_server_ip,在 upload 目录中进行上传/下载。五 常见问题与排查