菜鸟科技网

Linux SSH 下载命令有哪些?

在Linux系统中,SSH(Secure Shell)不仅是一种远程管理协议,还提供了安全的文件传输能力,通过SSH,用户可以在本地与远程主机之间安全地传输文件,常用的下载命令包括scpsftp以及结合rsync的高级用法,以下将详细介绍这些命令的使用方法、参数选项及实际应用场景。

Linux SSH 下载命令有哪些?-图1
(图片来源网络,侵删)

SCP命令:基于SSH的安全文件复制

SCP(Secure Copy)是SSH最基础的文件传输工具,通过加密通道在本地和远程主机之间复制文件,其基本语法为scp [选项] [源路径] [目标路径],其中源路径和目标路径可以包含用户名和主机地址,格式为[用户名@主机地址:]文件路径

基本用法

  • 从远程主机下载文件到本地
    命令格式:scp username@remote_host:/path/to/remote/file /local/path
    示例:scp user@192.168.1.100:/home/user/data.txt ~/Downloads/
    此命令会将远程主机168.1.100/home/user/data.txt文件下载到本地用户的Downloads目录。

  • 下载整个目录
    使用-r参数递归复制目录:
    scp -r username@remote_host:/path/to/remote/directory /local/path
    示例:scp -r user@192.168.1.100:/home/user/project ~/Documents/

常用参数选项

参数 功能说明
-P 指定SSH端口号(默认22)
-p 保留文件的修改时间、权限等元数据
-C 启用压缩传输,适合大文件或慢速网络
-l 限制传输速率(单位:Kbit/s)
-i 指定私钥文件路径

高级用法

  • 通过代理服务器传输
    若需通过中间主机转发,可使用-J参数:
    scp -J proxy_user@proxy_host user@remote_host:/file /local/path

    Linux SSH 下载命令有哪些?-图2
    (图片来源网络,侵删)
  • 使用非默认端口
    scp -P 2222 user@192.168.1.100:/file ~/Downloads/

SFTP命令:交互式文件传输

SFTP(SSH File Transfer Protocol)提供了类似FTP的交互式命令行界面,支持断点续传、权限检查等功能,适合需要精细控制的场景,启动SFTP后,可通过以下命令操作:

基本操作流程

sftp username@remote_host

连接成功后,进入SFTP命令行界面,常用命令包括:

  • get remote_file [local_file]:下载文件
  • get -r remote_directory:下载目录
  • ls [path]:列出远程目录内容
  • lcd local_path:切换本地工作目录
  • exit:退出SFTP

实用技巧

  • 断点续传
    使用-a-c参数:sftp -a user@remote_host,在传输中断后重新连接可自动续传。

    Linux SSH 下载命令有哪些?-图3
    (图片来源网络,侵删)
  • 批量下载
    结合mget命令:mget *.txt 下载所有txt文件。

Rsync命令:高效增量同步

Rsync通过差异算法仅传输文件变化部分,适合大文件或频繁同步场景,其语法为rsync [选项] [源路径] [目标路径]

从远程下载

rsync -avz username@remote_host:/path/to/remote/ /local/path
  • -a:归档模式,保留权限、时间戳等
  • -v:显示详细过程
  • -z:压缩传输数据

进阶功能

  • 排除特定文件
    rsync -avz --exclude='*.tmp' user@remote_host:/data /backup

  • 保留符号链接
    使用-L参数:rsync -avzL user@remote_host:/link /local

性能优化与安全建议

  1. 网络优化

    • 使用-C(SCP)或-z(Rsync)启用压缩
    • 通过-l限制带宽避免占用过多资源
  2. 安全增强

    • 禁用密码认证,改用SSH密钥对
    • ~/.ssh/config中配置主机别名简化命令:
      Host remote  
          HostName 192.168.1.100  
          User username  
          Port 22  
          IdentityFile ~/.ssh/id_rsa  

      后续可直接使用scp remote:/file ~/Downloads/

  3. 错误处理

    • 检查防火墙是否开放SSH端口(默认22)
    • 确认远程主机权限设置正确(如.ssh目录权限需为700)

相关问答FAQs

问题1:如何解决SCP下载时出现的“Permission denied”错误?
解答:该错误通常由权限不足引起,需检查三点:

  1. 远程文件权限是否允许当前用户读取(ls -l /path/to/file);
  2. 本地目标目录写入权限(chmod 755 ~/Downloads);
  3. SSH密钥认证是否正确配置(可通过ssh -v user@remote_host调试连接过程)。

问题2:Rsync与SCP在传输大文件时哪个效率更高?
解答:Rsync效率更高,原因在于:

  1. 增量传输:仅同步文件变化部分,适合二次传输;
  2. 压缩算法:默认支持压缩,减少网络带宽占用;
  3. 断点续传:通过--partial参数保留未完成传输的文件。
    但SCP语法更简单,适合一次性小文件传输。
分享:
扫描分享到社交APP
上一篇
下一篇