SSH服务与rsync服务配置实战

发布于:2025-06-20 ⋅ 阅读:(17) ⋅ 点赞:(0)

SSH服务与rsync服务

SSH

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

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

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

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

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

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

Port 22 #监听端口
AddressFamily any #ip地址版本
ListenAddress 0.0.0.0 #监听地址,ipv4
ListenAddress :: #监听地址,ipv6
PermitRootLogin yes #是否允许root用户登录
MaxAuthTries 6 #重新连接最大次数
MaxSessions 10 #建立不同用户的会话的最大个数
PubkeyAuthentication yes #是否启用公钥对验证登录
AuthorizedKeysFile      .ssh/authorized_keys #存储客户端公钥信息的文件
PasswordAuthentication yes #是否启用密码验证登录
PermitEmptyPasswords no #是否允许空密码登录
UsePAM yes #启用系统用户及密码进行验证登录
UseDNS no #是否启用ssh内部的解析,会影响连接速度
ssh常用命令及选项
命令/工具 功能描述 常用选项 选项说明
sshd SSH 服务端守护进程,用于接收和处理客户端的 SSH 连接请求。 -D 以守护进程(后台)方式运行(默认行为,通常用于启动服务)。
-d 调试模式(Debug),输出详细的连接和认证日志(前台运行,常用于排错)。
-f <config_file> 指定 SSH 服务端配置文件路径(默认:/etc/ssh/sshd_config)。
-p <port> 指定服务监听的端口(默认:22)。
-4 仅使用 IPv4 地址监听(禁用 IPv6)。
-6 仅使用 IPv6 地址监听(禁用 IPv4)。
ssh-keygen 生成 SSH 密钥对(公钥和私钥),用于免密登录或身份验证。 -t <type> 指定密钥类型(如 rsaed25519ecdsa 等;推荐 ed25519rsa(2048位以上))。
-b <bits> 指定密钥长度(仅对部分算法有效,如 RSA 默认 2048 位,-b 4096 生成 4096 位 RSA 密钥)。
-C <comment> 为生成的公钥添加注释(通常为用户邮箱或用户名,方便后续识别)。
-f <filename> 指定私钥文件存储路径(公钥会自动生成同名 .pub 文件,如 -f ~/.ssh/id_ed25519)。
-N "<passphrase>" 设置私钥的密码(Passphrase);若留空(-N "")则私钥无密码保护(不推荐生产环境)。
-q 静默模式(Quiet),不输出生成过程的提示信息。
ssh-copy-id 将本地公钥复制到远程主机的 ~/.ssh/authorized_keys 文件中,实现免密登录。 -i <identity_file> 指定要复制的公钥文件路径(默认:~/.ssh/id_rsa.pub 等)。
-p <port> 指定远程主机的 SSH 端口(默认:22)。
-o <ssh_option> 传递 SSH 客户端选项(如 -o StrictHostKeyChecking=no 跳过主机密钥校验)。
-f 强制覆盖远程主机已有的同名公钥(谨慎使用,可能导致原用户无法通过公钥登录)。
scp 安全复制(Secure Copy)工具,用于本地与远程主机之间或远程主机之间的文件/目录传输。 -P <port> 指定远程主机的 SSH 端口(注意:大写 P,默认:22)。
-r 递归复制目录(仅对目录有效)。
-v 详细模式(Verbose),显示传输过程的调试信息。
-q 静默模式(Quiet),不显示传输进度和错误信息。
-c <cipher> 指定加密算法(如 aes256-ctrchacha20-poly1305@openssh.com,默认自动协商)。
-i <identity_file> 指定用于认证的私钥文件(默认:~/.ssh/id_rsa 等)。
-l <limit> 限制传输速率(单位:Kbit/s,如 -l 1000 表示限速 1000 Kbps)。
sftp 交互式安全文件传输协议(SFTP)客户端,支持类似 FTP 的命令操作(上传、下载、删除等)。 -P <port> 指定远程主机的 SSH 端口(大写 P,默认:22)。
-r 递归上传/下载目录(仅对目录有效)。
-v 详细模式(Verbose),显示传输过程的调试信息。
-b <batchfile> 执行批量命令文件(非交互式模式,适用于脚本自动化)。
ssh SSH 客户端工具,用于连接远程主机并执行命令(也可用于测试 sshd 服务是否正常)。 -p <port> 指定远程主机的 SSH 端口(默认:22)。
-i <identity_file> 指定用于认证的私钥文件(默认:~/.ssh/id_rsa 等)。
-v/-vv/-vvv 详细模式(-v 基础,-vv 更详细,-vvv 调试级),用于排查连接或认证问题(如查看尝试的密钥、端口等)。
-o <ssh_option> 传递 SSH 配置选项(如 -o ServerAliveInterval=60 保持连接,-o User=root 指定用户名)。
  • 示例
[root@targetpc ~]#ssh_keygen -t rsa#生成密钥
[root@targetpc ~]#ssh-copy-id -i .ssh/id_rsa.pub root@192.168.25.155#拷贝密钥
[root@targetpc ~]#ssh root@192.168.25.155#免密登录

Rsync

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

  • scp无法备份大量数据,而rsync备份、统计、比较一起进行。
  • 可以备份整个目录树和文件系统,并保持文件原来的权限、时间、软硬链接。
  • 安装较容易,无需特殊权限。
  • 同步快速,首次同步完全备份,再次同步增量备份。
  • 可以使用scp和ssh等方式传输备份文件
  • 支持匿名传输
  • 选择性保持:符号链接、硬链接、文件属性、权限、时间等
  • 传输速度快:压缩再传输、解压再使用,减少带宽。

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

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

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

数据同步方式:push 和 pull

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

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

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

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

部署push模式
  • 目标主机配置
vim /etc/rsyncd.conf
port=873
address = 192.168.25.154
uid = root
gid = root
use chroot = yes
max connections = 4
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
motd file = /etc/rsyncd.motd
hosts allow = 192.168.25.0/24
[data]
path = /data/backup
comment = bakcup data
read only = false
list = yes
auth users = rsyncuser
secrets file = /etc/rsync.passwd
systectl restart rsyncd
######
mkdir /data/backup
echo 'rsyncuser:123456' > /etc/rsync.passwd 
chmod 600 /etc/rsync.passwd 
echo "Wellcome to backup server" > /etc/rsyncd.motd
  • 源主机
rsync -avz /data/ rsyncuser@192.168.25.153::data


###无密码登录
echo 123456 >  /root/passwd
chmod 600 /root/passwd
rsync -avz /data/ rsyncuser@192.168.25.153::data --password-file=/root/passwd

部署pull模式

  • 主机配置
vim /etc/rsyncd.conf
port=873
address = 192.168.25.154
uid = root
gid = root
use chroot = yes
max connections = 4
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
motd file = /etc/rsyncd.motd
hosts allow = 192.168.25.0/24
[data]
path = /data
comment = master data
read only = false
list = yes
auth users = rsyncuser
secrets file = /etc/rsync.passwd
########################
mkdir /data
echo 'rsyncuser:123456' > /etc/rsync.passwd 
chmod 600 /etc/rsync.passwd 
echo "Wellcome to data server" > /etc/rsyncd.motd
systemctl start rsyncd
  • 目标主机配置
rsync -avz rsyncuser@192.168.25.154::data /data/backup/
使用rsync+sersync配置实时同步
  • 目标主机
vim /etc/rsyncd.conf
port=873
address = 192.168.25.154
uid = root
gid = root
use chroot = yes
max connections = 4
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
motd file = /etc/rsyncd.motd
hosts allow = 192.168.25.0/24
[data]
path = /data/backup
comment = bakcup data
read only = false
list = yes
auth users = rsyncuser
secrets file = /etc/rsync.passwd
#############
systectl restart rsyncd
echo 'rsyncuser:123456' > /etc/rsync.passwd 
chmod 600 /etc/rsync.passwd 
echo "Wellcome to backup server" > /etc/rsyncd.motd
  • 源主机
tar -xf  sersync2.5.4_64bit_binary_stable_final.tar.gz
cd GNU-Linux-x86
mv GNU-Linux-x86 /opt/apps
vim /opt/apps/confxml.xml
##########################################
     <sersync>
         <localpath watch="/data">
             <remote ip="192.168.25.153" name="data"/>
         </localpath>
# 开启用户认证,并设置账号和密码 
             <auth start="true" users="rsyncuser" passwordfile="/root/passwd"/>
##################################################
echo 123456 >  /root/passwd
chmod 600 /root/passwd

 
/opt/apps/GNU-Linux-x86/sersync2 -d -r -o /opt/apps/GNU-Linux-x86/confxml.xml 

网站公告

今日签到

点亮在社区的每一天
去签到