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> |
指定密钥类型(如 rsa 、ed25519 、ecdsa 等;推荐 ed25519 或 rsa (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-ctr 、chacha20-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