温馨提示×

ubuntu sftp怎么传文件

小樊
42
2026-10-11 04:52:40
栏目: 智能运维

在 Ubuntu 上通过 SFTP(SSH File Transfer Protocol) 传文件,常见有几种方式:命令行、图形界面、脚本自动传输。下面按使用场景给你说明。


一、命令行方式(最常用)

1️⃣ 连接到 SFTP 服务器

sftp 用户名@服务器IP

例如:

sftp user@192.168.1.100

如果是非默认端口(如 2222):

sftp -P 2222 user@192.168.1.100

连接成功后提示符会变成:

sftp>

2️⃣ 上传文件(本地 → 服务器)

put 本地文件

示例:

put test.txt

上传到指定目录:

put test.txt /home/user/

上传整个目录:

put -r mydir

3️⃣ 下载文件(服务器 → 本地)

get 服务器文件

示例:

get test.txt

下载到本地指定目录:

get test.txt /home/local/

下载整个目录:

get -r mydir

4️⃣ 常用命令

ls        # 查看服务器目录
lls       # 查看本地目录
pwd       # 服务器当前路径
lpwd      # 本地当前路径
cd        # 切换服务器目录
lcd       # 切换本地目录
exit      # 退出

二、使用 scp(更简单,不算交互式 SFTP)

如果你只是传文件,不进入交互模式:

上传

scp file.txt user@192.168.1.100:/home/user/

下载

scp user@192.168.1.100:/home/user/file.txt ./

指定端口:

scp -P 2222 file.txt user@host:/path/

三、图形界面方式(适合桌面用户)

1️⃣ 文件管理器(Nautilus)

  1. 打开“文件”
  2. 地址栏输入:
    sftp://user@192.168.1.100
    
  3. 输入密码
  4. 直接拖拽文件

2️⃣ 使用 FileZilla

sudo apt install filezilla
  • 主机:sftp://IP
  • 用户名 / 密码
  • 端口(默认 22)

四、脚本自动传文件(无交互)

使用 sftp 批处理

sftp user@host <<EOF
put file.txt /remote/path/
exit
EOF

或使用 sshpass(不推荐生产环境):

sshpass -p '密码' scp file.txt user@host:/path/

五、常见问题

❌ 连接失败

  • SSH 服务是否开启:
    sudo systemctl status ssh
    
  • 防火墙是否放行 22 端口

❌ 权限不足

  • 目标目录是否有写权限
  • 是否用了正确的用户

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

  • 是 Ubuntu 作为客户端还是服务器
  • 是否 需要自动化
  • 是否 Windows ↔ Ubuntu

我可以直接给你一套最合适的命令或脚本。

0 踩