热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

多种_通过SSH在远程和本地系统之间传输文件的4种方法

篇首语:本文由编程笔记#小编为大家整理,主要介绍了通过 SSH 在远程和本地系统之间传输文件的 4 种方法相关的知识,希望对你有一定的参考价值。 您可以通过多种方式通过

篇首语:本文由编程笔记#小编为大家整理,主要介绍了通过 SSH 在远程和本地系统之间传输文件的 4 种方法相关的知识,希望对你有一定的参考价值。



您可以通过多种方式通过 SSH 传输文件。我将在这里讨论以下方法:



  • scp:已弃用的旧命令

  • rsync:用于文件同步的流行命令

  • sshfs:通过 SSH 挂载远程目录

  • sftp 客户端:通过 SFTP 访问文件的 GUI 工具

要通过 SSH 成功传输文件,您需要



  • 在两台机器之间进行 SSH 访问

  • 知道远程机器上的用户名和密码

  • 远程机器的 IP 地址或主机名(在同一子网上)

除此之外,让我们看看通过 SSH 在远程系统之间复制文件的方法。


方法一:使用 scp 命令通过 SSH 复制文件

scp 将被弃用,尽管如此,它仍然是我最喜欢的通过 SSH 在系统之间传输文件的工具。

为什么?

因为它的语法类似于 cp 命令。

让我们看看如何使用 scp 命令。


将文件从远程机器复制到本地机器

假如您想将文件从远程 Linux 系统复制到当前登录的系统。

这是一个通用语法,它将文件从远程系统上用户的主目录复制到本地登录系统的当前目录。

scp username@ip_address:/home/username/filename .

你看到与 cp 命令的相似之处了吗?

除了必须用冒号 (:) 指定用户名和 IP 地址外,几乎相同。

现在,让我向您展示这个命令的真实示例。

remote.txt在上面的示例中,我将文件从远程系统上的目录复制/home/abhishek/my_file到本地计算机的当前目录。

这应该会提示您应该知道文件在远程系统上的确切位置,选项卡完成在远程系统上不起作用。


将文件从本地机器复制到远程机器

这里的场景略有改变,在这一个中,您将使用 scp 通过 SSH 将本地文件发送到远程系统。

这是一种通用语法,它将文件名复制到远程系统上用户名的主目录。

scp filename username@ip_address:/home/username

在上面的示例中,我将local.txt文件从当前目录复制到abhishek远程系统上用户的主目录。

然后我登录到远程系统以显示该文件实际上已被复制。


也可以复制目录

还记得我告诉过你我喜欢 scp 因为它与 cp 命令相似吗?

与 cp 命令一样,您也可以使用 scp 通过 SSH 复制目录,语法也类似于 cp 命令。您只需要使用该-r选项。

scp -r source_dir username@ip_address:/home/username/target_dir

方法 二:使用 rsync 通过 SSH 复制文件和目录

由于 scp 已被弃用, rsync 是通过 SSH 在远程系统之间复制文件的下一个最佳工具,实际上,它在许多方面都比 scp 好。

命令语法与 scp 相同,必须使用旧版本的 rsync,rsync -e ssh但现在不再如此。


将文件从远程机器复制到本地机器

假设您要将文件从远程系统上用户的主目录复制到本地登录系统的当前目录。

rsync username@ip_address:/home/username/filename .

让我们以您在 scp 中看到的相同示例为例,我正在将文件remote.txt从/home/abhishek/my_file远程系统上的目录复制到本地机器的当前目录。


将文件从本地机器复制到远程机器

这是一个通用语法,它将文件复制到远程系统上用户名的主目录。

rsync filename username@ip_address:/home/username

是时候看看现实世界的例子了,我正在将local.txt文件从当前目录复制到abhishek远程系统上用户的主目录。


用 rsync 复制目录怎么样?

一样的。只需使用-rrsync 选项在远程系统之间通过 SSH 复制整个目录。

rsync -r source_dir username@ip_address:/home/username/target_dir

看看这个例子,我将整个 my_file 目录从远程系统复制到本地系统。

rsync 是一个多功能工具。它本质上是一个用于在两个目录之间“递归同步”内容的工具,并且在进行自动备份方面非常流行。


方法 三:使用 SSHFS 通过 SSH 从远程系统访问文件

还有可用于访问远程文件和目录的 SSHFS(SSH 文件系统),但是,这对于复制文件并不是很方便。

在这种方法中,您将远程目录挂载到本地系统上,挂载后,您可以在挂载目录和本地系统之间复制文件。

您可能需要先使用发行版的包管理器在本地系统上安装 sshfs。

在 Debian 和 Ubuntu 上,您可以使用以下命令:

sudo apt install sshfs

在系统上安装 sshfs 后,您可以使用它来挂载远程目录,最好为挂载点创建一个专用目录。

mkdir mount_dir

现在以这种方式在远程机器上挂载所需的目录:

sshfs username@IP_address:path_to_dir mount_dir

挂载后,您可以将文件复制到该目录或从该目录复制,就好像它在本地计算机上一样。

cp local_file mount_dir

请记住,您已安装此文件,完成工作后,您还应该卸载它:

umount mount_dir

这是一个示例,我将my_file目录从远程系统安装到remote_dir本地系统上的目录,我将文件复制remote.txt到本地系统,然后卸载目录。


方法 四:使用基于 GUI 的 SFTP 客户端在远程系统之间传输文件

作为最后的手段,您可以使用 FTP 客户端在远程和本地系统之间传输文件。

FileZilla是最流行的跨平台 FTP 客户端之一。您可以轻松地安装在本地系统上。

安装后,转到文件->站点管理器并添加远程系统详细信息,例如 IP 地址、SSH 端口号、用户名和密码。

连接后,您可以看到一个拆分窗口视图,左侧显示本地文件系统,右侧显示远程文件系统。

要传输文件,请从左到右或从右到左拖放文件,底部会出现一个进度条。


推荐阅读
  • 本文介绍了在Ubuntu 11.10 x64环境下安装Android开发环境的步骤,并提供了解决常见问题的方法。其中包括安装Eclipse的ADT插件、解决缺少GEF插件的问题以及解决无法找到'userdata.img'文件的问题。此外,还提供了相关插件和系统镜像的下载链接。 ... [详细]
  • 系统安装Debian系统的安装方式和Ubuntu系统的安装方式几乎是一样的,毕竟Ubuntu系统是基于Debian的,就如同CentOS基于Redhat ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • imx6ull开发板驱动MT7601U无线网卡的方法和步骤详解
    本文详细介绍了在imx6ull开发板上驱动MT7601U无线网卡的方法和步骤。首先介绍了开发环境和硬件平台,然后说明了MT7601U驱动已经集成在linux内核的linux-4.x.x/drivers/net/wireless/mediatek/mt7601u文件中。接着介绍了移植mt7601u驱动的过程,包括编译内核和配置设备驱动。最后,列举了关键词和相关信息供读者参考。 ... [详细]
  • CEPH LIO iSCSI Gateway及其使用参考文档
    本文介绍了CEPH LIO iSCSI Gateway以及使用该网关的参考文档,包括Ceph Block Device、CEPH ISCSI GATEWAY、USING AN ISCSI GATEWAY等。同时提供了多个参考链接,详细介绍了CEPH LIO iSCSI Gateway的配置和使用方法。 ... [详细]
  • 本文介绍了在Ubuntu下制作deb安装包及离线安装包的方法,通过备份/var/cache/apt/archives文件夹中的安装包,并建立包列表及依赖信息文件,添加本地源,更新源列表,可以在没有网络的情况下更新系统。同时提供了命令示例和资源下载链接。 ... [详细]
  • 本文介绍了在Ubuntu系统中清理残余配置文件和无用内容的方法,包括清理残余配置文件、清理下载缓存包、清理不再需要的包、清理无用的语言文件和清理无用的翻译内容。通过这些清理操作可以节省硬盘空间,提高系统的运行效率。 ... [详细]
  • 现在比较流行使用静态网站生成器来搭建网站,博客产品着陆页微信转发页面等。但每次都需要对服务器进行配置,也是一个重复但繁琐的工作。使用DockerWeb,只需5分钟就能搭建一个基于D ... [详细]
  • Linux一键安装web环境全攻略
    摘自阿里云服务器官网,此处一键安装包下载:点此下载安装须知1、此安装包可在阿里云所有Linux系统上部署安装,此安装包包含的软件及版本为& ... [详细]
  • 如何将CentOS8转换为CentOSStream
    CentOS Stream是一个持续交付的Linux发行版,它在RHEL之前处于领先地位。它将具有滚动发布,即不断进行更改。CentOS将成为一个上游版本,它将具有测试补丁和更新。 ... [详细]
  • Linux神奇漏洞:长按回车键70秒 即可轻松拿到Root权限
    一般来说获取系统root权限是很困难的,尤其是加密系统中,但西班牙安全研究员hectormarco、ismaelripoll发现,linux系统下只需按住回车键70秒钟,就能轻 ... [详细]
  • docker安装到基本使用
    记录docker概念,安装及入门日常使用Docker安装查看官方文档,在"Debian上安装Docker",其他平台在"这里查 ... [详细]
  • 下载地址http:www.kbengine.org这货不错安装在Linux上安装(CentosDebianUbuntuetc.)服务端,请在终端输入:pythonkbenginek ... [详细]
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • Django + Ansible 主机管理(有源码)
    本文给大家介绍如何利用DjangoAnsible进行Web项目管理。Django介绍一个可以使Web开发工作愉快并且高效的Web开发框架,能够以最小的代价构建和维护高 ... [详细]
author-avatar
once
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有