温馨提示×

linux sftp如何上传文件

小樊
80
2026-07-16 23:57:37
栏目: 智能运维

在 Linux 下使用 SFTP 上传文件,常见有 交互式命令行一次性 两种方式。下面按常用场景说明。


一、交互式 SFTP(最常用)

1️⃣ 连接远程服务器

sftp user@remote_ip

示例:

sftp root@192.168.1.100

连接成功后会看到:

sftp>

2️⃣ 上传单个文件

put local_file

例如:

put test.txt

指定远程文件名:

put test.txt /home/user/test.txt

3️⃣ 上传多个文件

mput *.txt

4️⃣ 上传整个目录(需要开启递归)

put -r local_dir

示例:

put -r ./mydir

✅ 有些旧版本 sftp 不支持 -r,可用 lftpscp


5️⃣ 切换远程目录

cd /remote/path

查看远程目录:

ls

6️⃣ 退出

exit

二、非交互式(脚本 / 一行命令)

方式一:使用 sftp + stdin

echo "put test.txt" | sftp user@remote_ip

或多个命令:

sftp user@remote_ip <<EOF
cd /upload
put test.txt
bye
EOF

三、使用 lftp(推荐,更稳定)

lftp sftp://user@remote_ip -e "put test.txt; bye"

上传整个目录:

lftp sftp://user@remote_ip -e "mirror -R local_dir /remote_dir; bye"

四、使用 scp(更简单,但不是 sftp)

如果不需要 sftp 协议,可以直接用:

scp local_file user@remote_ip:/remote/path

上传目录:

scp -r local_dir user@remote_ip:/remote/path

五、常见问题

❓ 端口不是 22

sftp -P 2222 user@remote_ip

❓ 使用密钥登录

sftp -i ~/.ssh/id_rsa user@remote_ip

六、总结对比

方式 适合场景
sftp 交互 手动操作
sftp + 脚本 自动化
lftp 大目录/批量
scp 简单快速

如果你愿意,可以告诉我:

  • 手动上传 还是 脚本自动上传
  • 是否 非 22 端口
  • 是否 服务器支持 ssh

我可以给你一条 完全可用的命令

0