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

ssh 服务和 rsync 数据同步

目录

一、ssh服务

1、概述

2、命令解析

远程登录命令

远程拷贝命令

3、登录方式配置

1、用户名密码登录

2、公钥验证登录

二、rsync 数据同步

1、rsync概述

2、rsync运行原理

3、rsync部署


一、ssh服务

1、概述

ssh服务,一种远程管理连接工具,在CentOS7系统中默认安装并开机自启的。

SSH(Secure Shell)是一种安全通道协议,主要用来实现字符界面的远程登录,远程复制等功能。

监听tcp的22号端口。软件包名称:openssh

配置文件目录:/etc/ssh,sshd_config 服务端配置文件;ssh_config 客户端配置文件。

客户端提供:ssh、scp、sftp命令

服务端提供:sftp服务、ssh服务

2、命令解析

远程登录命令


###语法:####
ssh [选项] [username@]ssh服务器的监听IP地址或者主机名(使用主机名时,保证客户端能够解析主机名)
####选项:######root@shuaige ~]# ssh root@192.168.126.150
The authenticity of host '192.168.126.150 (192.168.126.150)' can't be established.
ECDSA key fingerprint is SHA256:mcPIFK1593usLRK8zsfuNNsBn39Jt2MC2L/GP1fhA1I.
ECDSA key fingerprint is MD5:00:85:24:3b:89:ba:ab:7e:35:49:f7:21:d2:0e:c7:f7.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.126.150' (ECDSA) to the list of known hosts.
root@192.168.126.150's password: 
Last login: Thu Jun 19 20:20:05 2025 from 192.168.126.1
[root@niuniu ~]# 

远程拷贝命令


###语法:####
##将本机的文件拷贝到远程主机##
scp  本机的文件路径  [username@]ssh服务器的监听IP地址或者主机名:/远程主机存储路径
##将远程主机的文件拷贝到本机##
scp    [username@]ssh服务器的监听IP地址或者主机名:/远程主机存储路径 本机的文件路径
###sftp服务登录命令###
sftp [选项] [username@]ssh服务器的监听IP地址或者主机名(使用主机名时,保证客户端能够解析主机名)[root@shuaige ~]# ls
anaconda-ks.cfg  ceph-release-1-1.el7.noarch.rpm  sersync2.5.4_64bit_binary_stable_final.tar.gz
[root@shuaige ~]# scp root@192.168.126.150:/root/info.sh /root/
root@192.168.126.150's password: 
info.sh                                                                                       100%   79    49.6KB/s   00:00    
[root@shuaige ~]# ls
anaconda-ks.cfg  ceph-release-1-1.el7.noarch.rpm  info.sh  sersync2.5.4_64bit_binary_stable_final.tar.gz

3、登录方式配置

1、用户名密码登录

默认方式,直接可以使用

2、公钥验证登录

密码学基础:

概念解析
对称加密双方采用相同的秘钥,安全性较低
非对称加密双方采用不同的秘钥,安全性较高
公钥大家都可以知道的秘钥。
私钥只有自己知道的秘钥。能够证明自己的身份信息

​注意:公钥和私钥不能相互推导!!!

​公钥与私钥之间能够相互解密!!!

数据加密

使用对端的公钥加密,接收端收到数据后,使用自己的私钥解密。作用是保证数据完整性。

数字签名

私用自己的私钥加密,接收端收到数据后,使用发送端的公钥解密。作用是保证发送者的身份唯一性。

ssh客户端生成密钥对

[root@shuaige .ssh]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:VCveITX0r9Lbcb6f4ntKuK0aWHeKWDW8bbv9lQRwCIQ root@shuaige
The key's randomart image is:
+---[RSA 2048]----+
|        o+*...   |
|       E o.=o    |
|        + o+..   |
|       o +..+..  |
|        So.o +.. |
|        = o.=.o .|
|       o o.ooo..o|
|          ..++o=o|
|         ..o+**+B|
+----[SHA256]-----+[root@shuaige .ssh]# ls
id_rsa  id_rsa.pub             ###id_rsa: 私钥;id_rsa.pub: 公钥###

拷贝公钥命令

ssh-copy-id ##将公钥拷贝到IP地址为192.168.126.150的root用户下
[root@shuaige .ssh]# ssh-copy-id root@192.168.126.150
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
The authenticity of host '192.168.126.150 (192.168.126.150)' can't be established.
ECDSA key fingerprint is SHA256:mcPIFK1593usLRK8zsfuNNsBn39Jt2MC2L/GP1fhA1I.
ECDSA key fingerprint is MD5:00:85:24:3b:89:ba:ab:7e:35:49:f7:21:d2:0e:c7:f7.
Are you sure you want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@192.168.126.150's password: Number of key(s) added: 1Now try logging into the machine, with:   "ssh 'root@192.168.126.150'"
and check to make sure that only the key(s) you wanted were added.##远程登录就不用再输入密码验证了

二、rsync 数据同步

1、rsync概述

Rsync(Remote Sync)是Linux系统下的数据镜像备份工具。该工具可以实现远程同步、不同主机之间的同步,也能实现全量备份增量备份,保持数据链接和权限,并采用优化的同步算法,传输前对数据进行压缩,故该工具非常适合架构集中式备份异地备份。也支持本地复制或与ssh、rsync同步。

官网地址:https://rsync.samba.org/

优点:

  • scp无法备份大量数据,而rsync备份、统计、比较一起进行。

  • 可以备份整个目录树和文件系统,并保持文件原来的权限、时间、软硬链接。

  • 安装较容易,无需特殊权限。

  • 同步快速,首次同步完全备份,再次同步增量备份。

  • 可以使用scp和ssh等方式传输备份文件

  • 支持匿名传输

  • 选择性保持:符号链接、硬链接、文件属性、权限、时间等

  • 传输速度快:压缩再传输、解压再使用,减少带宽。

备份分类:

  • 完全备份:所有文件进行备份

  • 差异备份:备份自上次完全备份以来所有的修改

  • 增量备份:备份自上次备份依赖所作的修改

2、rsync运行原理

rsync采用C/S模式,即点到点的传输。通过xinetd服务监听873端口,再让xinetd服务下的rsync服务作出响应。

源主机:需要同步数据的服务器

目标主机:存放服务器同步数据的主机

数据同步方式:push 和 pull

  • 推push:主动同步,把数据发送给目标主机。服务器开销大,适合后端服务器较少的情况。【服务器备份推给rsync客户端存放,主动模式】

目的主机配置为 rsync 服务端,源主机周期性的使用 rsync 命令把要同步的目录推过去。

  • 拉pull:所有客户端主机去服务器上面拉数据,导致数据传输缓慢。【rsync客户端去服务器上拉数据,存放到客户端上,被动模式】

源主机配置为 rsync 服务端,目的主机周期性的使用 rsync 命令把要同步的目录拉过来。

3、rsync部署

[root@shuaige ~]# yum install xinetd rsync -y
[root@niuniu ~]# yum install xinetd rsync -y
参数作用
-a

–archive archive mode权限保存模式【递归、保持属性】

–port指定端口号,默认873
–delete删除那些目标位置有的文件而备份源没有的文件,最大程度的保持一致
–avz常用:保留权限、显示同步过程、压缩传输
# 由于rsync备份是会保持目录及其文件的权限、时间、软硬连接不变的,那要求备份在ssh传输过程中一路顺畅,不会因权限不足而备份失败。
# 这里创建test用户用于测试
[root@shuaige ~]# useradd test && echo 123456 | passwd --stdin test
更改用户 test 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@niuniu ~]# useradd test && echo 123456 | passwd --stdin test
更改用户 test 的密码 。
passwd:所有的身份验证令牌已经成功更新。# 服务端上创建测试目录/data
# g+s权限的作用在于/data目录下新增的文件的所属组都会是test
# setfacl为test用户创建在/data的rwx权限
[root@shuaige ~]# mkdir /data
[root@shuaige ~]# chown -R test:test /data
[root@shuaige ~]# chmod g+s /data
[root@shuaige ~]# setfacl -m u:test:rwx /data
[root@shuaige ~]# cp -r  /boot/* /data# 客户端上创建备份存放目录
[root@niuniu ~]# mkdir  -p /data/backup/
[root@niuniu ~]# chown test:test /data/backup/
[root@niuniu ~]# ll -d /data/backup/
drwxr-xr-x. 2 test test 6 8月   6 23:52 /data/backup/# 备份/data目录下的数据到客户端上
[root@server ~]# rsync -avz /data/ test@192.168.126.147:/data/backup
test@192.168.126.147's password: 
sending incremental file list
./
。。。省略备份信息。。。
sent 138,094,794 bytes  received 6,296 bytes  5,211,361.89 bytes/sec
total size is 152,364,618  speedup is 1.10# 客户端上验证备份内容,可以看到有数据传输进去
[root@niuniu ~]# du -sh /data/backup/
146M	/data/backup/# 如果同步的时候,使用的不是ssh的22号端口,而是其他端口,比如222,要加-e参数指定端口号
rsync -avz /data/  -e "ssh -p 222" test@192.168.126.147:/data/backup 

相关文章:

  • MFC中使用CRichEditCtrl控件让文本框中的内容部分加粗
  • 面试第三期
  • C#语言入门-task2 :C# 语言的基本语法结构
  • C#实现语音预处理:降噪/静音检测/自动增益
  • 河马剧场多部自制剧霸榜,短剧精品化战略持续推进
  • 二十章:ps结合插件stable diffusion
  • 【LLM学习笔记3】搭建基于chatgpt的问答系统(下)
  • CFG的前世今生
  • 拼多多商家端 anti_content 补环境分析
  • 网页后端开发(基础4--数据库MySQL)
  • Xsens动作捕捉技术用于研究机器人的运动控制、姿态调整以及人机交互
  • 不同程度多径效应影响下的无线通信网络电磁信号仿真数据生成程序
  • 【lenovo】LEGION 2020款跳过windows账号登录
  • 【MySQL篇01】补充:索引体系大总结(数据库原理篇)
  • C++ 性能分析工具:Valgrind 与 perf
  • Redis 的优势有哪些,它是CP 还是 AP?CAP 理论又是什么?
  • 据字典是什么?和数据库、数据仓库有什么关系?
  • bfs广度优先搜索
  • 微服务学习
  • 【mongoose8.x】mongoose8.x入门教程(二):express中mongoose的链接
  • 网站建设流程时间表/正规网站建设服务
  • 做营销网站那个好/seochan是什么意思
  • 用ps做美食网站/谷歌浏览器下载手机版中文
  • 单页面推广网站/网页制作源代码
  • 网站推广的优势/网络营销的十种方法
  • 外贸建站哪家强外贸网站怎么做/网站买卖交易平台