欢迎光临
我们一直在努力

sftp 如何从服务器下载到本地,命令是什么?

用 SFTP 从服务器下载到本地:命令速查

SFTP 有两种常见用法:交互式(登录后用命令行操作)和非交互式(脚本/一行命令批量执行)。下面给出最实用的命令和示例。


快速示例(最常用)

# 连接服务器(默认端口 22)
sftp user@server.example.com

# 如果端口不是 22
sftp -P 2222 user@server.example.com

# 指定私钥
sftp -i ~/.ssh/id_rsa user@server.example.com

进入 sftp 提示符后:

# 查看远程/本地目录
sftp> pwd
sftp> lpwd

# 切换远程/本地目录
sftp> cd /remote/path
sftp> lcd /local/save/path

# 下载单个文件到当前本地目录
sftp> get file.txt

# 下载到指定本地路径(带文件名)
sftp> get /remote/path/file.txt /local/save/path/file.txt

# 递归下载目录
sftp> get -r dir_name

# 批量下载(通配符)
sftp> mget *.log

# 断点续传(续传到已存在的同名本地文件)
sftp> reget bigfile.iso

# 退出
sftp> bye


非交互式(脚本/一条命令执行)

适合自动化或一次性批量下载:

  • 使用批处理文件:

# batch.txt 的内容
lcd /local/save/path
cd /remote/path
get -r reports
mget *.log
bye

执行:

sftp -P 2222 -i ~/.ssh/id_rsa -b batch.txt user@server.example.com

  • 用“这里文档”一条命令完成:

sftp -P 2222 user@server.example.com <<'EOF'
lcd /local/save/path
cd /remote/path
get data.csv
bye
EOF


常用命令与参数速记

  • 连接

    • sftp user@host:连接
    • -P <port>:端口(大写 P)
    • -i <identity_file>:指定私钥
    • 其他 SSH 选项可用 -o 传入,如 -o StrictHostKeyChecking=no
  • 下载

    • get <remote> [local]:下载单个文件
    • get -r <remote_dir>:递归下载目录
    • mget <pattern>:按通配符批量下载(如 mget *.log)
    • reget <remote> [local]:断点续传(从已存在的本地文件大小处续传)
    • get -p …:保留时间戳/权限(preserve attributes)
    • 提示:不需要先 cd,也可直接用完整路径:get /remote/a/b.txt /local/c/b.txt
  • 本地与远程目录

    • pwd / lpwd:显示远程/本地当前目录
    • cd / lcd:切换远程/本地目录
    • ls / lls:列出远程/本地文件
  • 退出

    • bye 或 quit

小贴士

  • 如果只是单次拷贝,scp 会更简洁(但你问题是 sftp,这里仅作对比):

    scp -P 2222 user@server:/remote/path/file.txt /local/save/path/

  • 权限/端口问题

    • 连接失败先检查端口、防火墙以及账号权限。
    • 首次连接提示“fingerprint/host key”,确认后会写入 ~/.ssh/known_hosts。
  • Windows

    • Windows 10+ 自带 OpenSSH 客户端,PowerShell/命令行里直接用同样的 sftp 命令。
    • 如果用 PuTTY 套件,可用 psftp,命令基本一致(open user@host → get …)。
赞(0)
未经允许不得转载:171主机测评 » sftp 如何从服务器下载到本地,命令是什么?
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址