当前位置: 首页 > news >正文

两台服务器间进行文件传输

目录

方法1:使用SCP

方法2:使用rsync

使用SSH密钥


两台服务器之间进行文件传输通常可以使用SCP(Secure Copy Protocol)或rsync命令。这两种方法都是在UNIX和Linux系统上常用的工具,用于安全地复制文件和目录。以下是使用这两种方法的示例:

方法1:使用SCP

SCP是一种在两台服务器之间安全地复制文件的方法。你可以使用scp命令来实现这一目标。以下是一个示例:

# 从本地服务器复制文件到远程服务器

scp /path/to/local/file.txt username@remote_server:/path/to/remote/directory/

这里的参数解释如下

  1. /path/to/local/file.txt 是本地服务器上的文件路径。
  2. username 是远程服务器上的用户名。
  3. remote_server 是远程服务器的地址。
  4. /path/to/remote/directory/ 是远程服务器上存储文件的目录。

实例:

# 从本地服务器复制文件到远程服务器

scp /home/user/documents/file.txt user@192.168.1.100:/var/www/html/

这将把file.txt从本地服务器复制到远程服务器的/var/www/html/目录下。

方法2:使用rsync

rsync是另一个用于文件同步和复制的强大工具,它可以增量地复制文件,只复制已更改的部分,从而提高效率。以下是一个示例:

# 使用rsync从本地服务器复制文件到远程服务器

rsync -avz /path/to/local/file.txt username@remote_server:/path/to/remote/directory/

这里的参数解释如下:

-avz 表示以归档模式进行复制,保留文件属性和递归目录,使用压缩传输数据。

/path/to/local/file.txt 是本地服务器上的文件路径。

username 是远程服务器上的用户名。

remote_server 是远程服务器的地址。

/path/to/remote/directory/ 是远程服务器上存储文件的目录。

实例:

# 使用rsync从本地服务器复制文件到远程服务器

rsync -avz /home/user/documents/file.txt user@192.168.1.100:/var/www/html/

这将把file.txt从本地服务器复制到远程服务器的/var/www/html/目录下,同时保留文件属性。

选择使用SCP还是rsync取决于你的需求和偏好。通常来说,如果你需要简单的文件传输,SCP足够了。如果需要更复杂的文件同步和备份,rsync是一个更强大的工具。

使用SSH密钥

上述方法每传输完一个文件都要重新输入账户密码,这对一个或几个文件时适用,但如果有数量较多文件需要传输时,需要生成SSH密钥对进行文件传输。

  1. 生成SSH密钥对:

    在本地计算机上打开终端,并执行以下命令来生成SSH密钥对(如果密钥对已存在,请跳到下一步):

    ssh-keygen -t rsa

    这将生成一个公钥文件(通常为~/.ssh/id_rsa.pub)和一个私钥文件(通常为~/.ssh/id_rsa)。不要共享私钥文件。

  2. 将公钥复制到远程服务器:

    使用scp或其他文件传输方法将公钥复制到要传输文件的远程服务器。以下是使用scp的示例:

    scp ~/.ssh/id_rsa.pub user@remote_server_ip:~/.ssh/

    请替换user为远程服务器上的用户名,remote_server_ip为远程服务器的IP地址或主机名。

  3. 将公钥添加到远程服务器的授权文件:

    登录到远程服务器,并将公钥添加到~/.ssh/authorized_keys 文件中,如果该文件不存在,请创建它:

    cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

    如果有多个公钥,每个公钥应该在一个新行上。

  4. 设置正确的权限:

    确保远程服务器上的.ssh文件夹和authorized_keys文件具有正确的权限,以确保SSH能够正常工作。可以使用以下命令来设置权限:

    chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys
  5. 测试SSH密钥认证:

    在本地计算机上执行以下命令,以确保您可以通过SSH密钥认证登录到远程服务器,而不需要输入密码:

    ssh user@remote_server_ip

    如果一切设置正确,您应该能够无需密码登录到远程服务器。

  6. 使用scprsync进行文件传输:

    现在,您可以使用scprsync在两台服务器之间传输文件,而不需要输入密码:

    scp file.txt user@remote_server_ip:/path/to/destination/

    或者

    rsync -avz -e "ssh" /path/to/source/ user@remote_server_ip:/path/to/destination/

    这些命令将使用SSH密钥认证进行安全的文件传输。

确保您的SSH密钥对受到良好的保护,并且不要共享私钥文件,以确保安全性。

http://www.lryc.cn/news/170956.html

相关文章:

  • 研究生选控制嵌入式还是机器视觉好?
  • SecureCRT SSH与FTP连接中文乱码
  • OSI七层网络参考模型与数据流通过程
  • 数字孪生行业相关政策梳理--工业领域相关政策(可下载)
  • 【工具】咸鱼之王辅助小助手来了!
  • 黑马JVM总结(十)
  • JPEG、GIF动图可以转换成SVG、Eps格式的矢量图吗?
  • 数据结构与算法的力量:编写更高效的代码
  • Python批量统计pdf中“中文”字符的个数
  • LeetCode的第 363 场周赛——记录+补题
  • 【网络协议】Http-上
  • Langchain-chatchat本地部署
  • SQL故障和排查解决浅析
  • 基础算法--双指针算法
  • 企业工程项目管理系统源码(三控:进度组织、质量安全、预算资金成本、二平台:招采、设计管理)
  • 生物的神经系统与机器的人工神经网络
  • JNI 基础
  • 用户参数(zabbix-agent)
  • 期权策略篇: 实现买方狂欢,让卖方稳赚不赔的策略
  • 关于包,类名,方法名的命名规范
  • 1.1 安装配置CentOS
  • go初识iris框架(七) - 实战资源导入和项目框架搭建
  • 甲胎蛋白AFP抗体——博迈伦
  • junit.Test误踩坑,识别不到@Test注解,无法运行测试方法
  • 一加Ace2V/Ace竞速版刷入氧OS13系统-谷歌服务套件-全球语言-国际版体验
  • Java 华为真题-猴子爬山
  • Axios笔记
  • 如何使用try-except语句处理Python中的异常
  • 学Python的漫画漫步进阶 -- 第十一步.常用的内置模块
  • 发现无尽的创意可能性——Photo Image Editor Pixelstyle for Mac