在Linux(Ubuntu)SSH连接主机时能否通过SFTP反向传输文件至客户端?
反向从远程主机传输文件到本地的几种方法(Ubuntu/Linux)
当然支持!其实SSH生态里自带好几种实用工具,能轻松实现从远程主机把文件拉回本地的操作,我给你整理几个日常最常用的:
1. SFTP:安全文件传输协议的反向操作
SFTP不仅支持从本地推送文件到远程,反过来拉取也很方便,分两种方式:
- 交互模式:在本地终端直接连接远程主机,然后下载文件:
sftp your_username@remote_host_ip # 进入SFTP会话后,下载单个文件 get /remote/path/to/target_file /local/path/to/save # 下载整个目录(递归) get -r /remote/path/to/target_dir /local/path/to/save - 一键命令模式:不用进入交互界面,直接在本地一行完成:
# 拉取单个文件 sftp your_username@remote_host_ip:/remote/path/to/target_file /local/path/to/save # 拉取目录 sftp -r your_username@remote_host_ip:/remote/path/to/target_dir /local/path/to/save
2. scp:最快捷的文件复制工具
scp是很多Linux用户的首选,因为语法简单,传输高效:
- 拉取单个文件:
scp your_username@remote_host_ip:/remote/path/to/target_file /local/path/to/save - 拉取整个目录(加
-r参数递归):scp -r your_username@remote_host_ip:/remote/path/to/target_dir /local/path/to/save - 如果远程SSH端口不是默认的22,记得加
-P参数指定端口:scp -P 2222 your_username@remote_host_ip:/remote/path/to/file /local/path
3. rsync:适合大量文件/增量同步
如果要传输的文件数量多,或者需要后续增量同步(只传变化的文件),rsync是更高效的选择:
# 归档模式传输(保留文件权限、时间戳等),压缩传输并显示进度 rsync -avz your_username@remote_host_ip:/remote/path/to/target_dir/ /local/path/to/save/
参数说明:
-a:归档模式,保留文件元数据-v:显示详细传输信息-z:传输时压缩数据,节省带宽
4. 已在远程SSH会话中?不用退出也能传
如果你已经登录到远程主机的SSH会话里,不想退出再操作,也能反向传输:
- 用scp直接推到本地(需要本地主机能被远程访问,且本地开启SSH服务):
scp /remote/path/to/target_file your_local_username@local_host_ip:/local/path/to/save - 用SSH管道传输小文件(不用依赖scp):
cat /remote/path/to/target_file | ssh your_local_username@local_host_ip 'cat > /local/path/to/save/file'
注意事项
- 确保你对远程目标文件/目录有读取权限,本地保存路径有写入权限
- 如果用非默认SSH端口,记得在命令中指定(不同工具参数略有区别,比如SFTP用
-o Port=xxxx)
内容的提问来源于stack exchange,提问作者RD Ward
相关产品推荐
相关产品推荐

