Linux SSH 下载命令有哪些?

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

linux ssh 下载命令
(图片来源网络,侵删)

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 下载命令
    (图片来源网络,侵删)
  • 使用非默认端口
    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 下载命令
    (图片来源网络,侵删)
  • 批量下载
    结合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语法更简单,适合一次性小文件传输。

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/405648.html<

(0)
运维的头像运维
上一篇2025-10-17 14:11
下一篇 2025-10-17 14:16

相关推荐

  • wget命令Linux下载怎么用?

    在Linux系统中,wget是一款非常流行的命令行下载工具,它支持HTTP、HTTPS、FTP等多种协议,能够递归下载、断点续传,并且可以在后台执行下载任务,wget以其简洁高效的特点,成为系统管理员和开发者的常用工具之一,本文将详细介绍wget的使用方法,包括基本语法、常用参数、实际应用场景以及一些高级技巧……

    2025-11-20
    0
  • curl命令如何正确设置header?

    在Linux和Unix-like系统中,curl是一个非常强大的命令行工具,用于传输数据,它支持多种协议,包括HTTP、HTTPS、FTP、FTPS等,并且可以通过设置HTTP头部(Headers)来定制请求行为,HTTP头部是客户端和服务器之间传递的元数据,用于描述请求或响应的属性,如内容类型、认证信息、缓存……

    2025-11-20
    0
  • CRT下载命令有哪些?

    在Linux和Unix-like系统中,CRT(通常指SecureCRT等终端模拟器)本身并不需要通过命令行下载安装,但用户可能需要通过命令行下载其安装包或依赖工具,以下是常见的CRT相关下载及安装命令的详细说明,适用于不同发行版和场景,对于基于Debian/Ubuntu的系统,若需下载SecureCRT的安装……

    2025-11-19
    0
  • Unix拷贝文件命令有哪些?

    在Unix操作系统中,文件拷贝是日常管理和维护任务中的基础操作,掌握不同的拷贝命令及其使用场景对于提高工作效率至关重要,Unix系统提供了多种拷贝文件的工具,包括cp、dd、tar、rsync等,每个命令都有其独特的功能和适用场景,本文将详细介绍这些命令的用法、参数选项以及实际应用案例,帮助用户根据需求选择最合……

    2025-11-18
    0
  • Linux下如何用命令下载JDK?

    在Linux系统中下载和安装JDK(Java Development Kit)是Java开发环境搭建的基础步骤,Linux作为服务器和开发环境的主流操作系统,提供了多种方式获取JDK,包括使用包管理器、手动下载安装包、通过包仓库等,本文将详细介绍不同Linux发行版下JDK的下载方法、安装步骤及环境变量配置,帮……

    2025-11-17
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注