Linux常用工具及服务(ssh,rsync)

发布于:2022-11-16 ⋅ 阅读:(681) ⋅ 点赞:(0)

目录

一、SSH服务远程终端连接工具

1、SSH的登录原理

 2、SSH基本用法

2.1 基本语法:

3、ssh服务认证类型

3.1 基于口令认证

3.2 基于密钥认证

4、ssh服务常见配置

4.1 常见配置

 5、ssh客户端附带的远程拷贝scp命令

5.1 基本语法

二、Rsync远程同步及备份工具

2.1 rsync 安装

2.2 rsync-daemon 认证

2.3 ssh认证

2.4 Rsync命令参数

2.5 Rsync基于SSH认证的使用

2.5.1 rsync==cp

2.5.2 rsync == scp

2.5.3 rsync== rm

2.5.4 rsync == ls -l

2.6 Rsync基于rsync-daemon认证的使用

2.6.1 配置rsync服务端

2.6.2 配置rsync客户端(其他服务器为客户端)


一、SSH服务远程终端连接工具

1、SSH的登录原理

 2、SSH基本用法

2.1 基本语法:

ssh -p 22 user@host

参数:

-p : 指定端口号

user : 登录的用户名

host : 登录的主机

默认的端口号为22,当端口号为22的时候,可以省略,直接使用。

3、ssh服务认证类型

3.1 基于口令认证

基于口令的安全验证的方式就是大家现在一直在用的,只要知道服务器的SSH连接帐 号和口令(当然也要知道对应服务器的 IP及开放的 SSH端口,默认为22 ),就可以通过 ssh客户端登录到这台远程主机。此时,联机过程中所有传输的数据都是加密的。

ssh + ip

3.2 基于密钥认证

首先在客户端生成一对密钥

 ssh-keygen -t dsa

 将客户端的公钥传到服务器端

 测试:

4、ssh服务常见配置

SSH服务的配置文件为/etc/ssh/sshd_config

4.1 常见配置

常见的SSH服务器监听的选项如下:

1. Port 22         //监听的端口号为22

2. Protocol 2         //使用SSH V2协议

3.  ListenAdderss 0.0.0.0            //监听的地址为所有的地址

4.  UserDNS no       //禁止DNS反向解析 建议用no,不需要对DNS进行反向解 析,可以加快ssh连接速度。

常见用户登录控制选项如下:

PermitRootLogin no         // 禁止root用户登录

PermitEmptyPasswords no         // 禁止空密码用户登录

LoginGraceTime 2m         // 登录验证时间为2分钟

MaxAuthTries 6         // 最大重试次数6次

AllowUsers steven         // 只允许steven用户登录

DenyUsers steven         // 不允许登录用户 steven

常见登录验证方式如下:

PasswordAuthentication yes         //启用密码验证

PubkeyAuthentication yes         //启用密匙验证

AuthorsizedKeysFile .ssh/authorized_keys         //指定公钥数据库文件

 5、ssh客户端附带的远程拷贝scp命令

5.1 基本语法

scp -secure copy

每次都是全量拷贝,增量拷贝用rsync

#推:PUSH

scp -P22 -r -p /tmp/chensiqi root@172.16.1.41:/tmp

#拉:PULL

scp -P22 -rp root@172.16.1.41:/tmp/chensiqi /opt/

-P(大写):接端口,默认22

-r:递归,表示拷贝目录

-p:表示在拷贝前后保持文件或目录属性

-l limit:限制速度

二、Rsync远程同步及备份工具

2.1 rsync 安装

yum -y install rsync

2.2 rsync-daemon 认证

rsync在rsync-daemon认证方式下,默认监听TCP的873端口。

rsync-daemon认证方式是rsync的主要认证方式,这个也是我们经常使用的认证方式。 并且也只有在此种模式下,rsync才可以把密码写入到一个文件中。

注意:

rsync-daemon认证方式,需要服务器和客户端都安装rsync服务并且只需要rsync服务器端启动rsync,同时配置rsync配置文件。客户端启动不启动rsync服务,都不影响同步的正常进行

2.3 ssh认证

rsync在ssh认证方式下,可通过系统用户进行认证,即在rsync上通过ssh隧道进行传 输,类似于scp工具。

注意:

ssh认证方式,不需要服务器和客户端配置rsync配置文件只需要双方都安装rsync服务,并且也不需要双方启动rsync。

两种认证方式的本质区别:

ssh 协议认证连接的两端是通过管道完成通信和数据传输的,当连接到远程主机时,将在远程主机 fork 出 rsync 进程使其成为 rsync server;而 rsync 协议认证是 事先在远程主机上运行 rsync 守护进程,监听套接字等待客户端的连接,建立连接后 所有通信方式都是通过套接字完成的。

2.4 Rsync命令参数

rsync 命令的基本格式有多种,分别是:

rsync [OPTION] SRC DEST        #用于仅在本地备份数据;

rsync [OPTION] SRC [USER@]HOST:DEST        #用于将本地数据备份到远程机器上;

rsync [OPTION] [USER@]HOST:SRC DEST   #用于将远程机器上的数据备份到本地机上

rsync [OPTION] [USER@]HOST::SRC DEST   #和第三种是相对的

rsync [OPTION] SRC [USER@]HOST::DEST         #和第二种是相对的,它们各自之间的区别 在于登陆认证时使用的验证方式不同。

使用 rsync 在远程传输数据(备份数据)前,是需要进行登陆认证的,这个 过程需要借助 ssh 协议或者 rsync 协议才能完成。在 rsync 命令中,如果使用单个 冒号(:),则默认使用 ssh 协议;反之,如果使用两个冒号(::),则使用 rsync协议。

  • SRC:用来表示要备份的目标数据所在的位置(路径);
  • DEST:用于表示将数据备份到什么位置;
  • USER@:当做远程同步操作时,需指明系统登录的用户名,如果不显示指定, 默认为以 root 身份登录系统并完成同步操作。

2.5 Rsync基于SSH认证的使用

rsync 默认使用 ssh 协议进行远程登录和数据传输。远程主机需要开启 sshd 服务, rsync 在传输数据之前会先与远程主机进行一次 ssh 登录认证,然后通过 ssh 隧道进 行数据传输。只需数据同步双方安装 rsyncm,但不必启动 rsyncd 服务。

可用 -e 选项指定协议:

rsync -r -e ssh 目录  username@1.1.1.1:目标目录

也可省略 -e;使用 ssh 认证与传输的缺点是不安全

rsync 命令属于1 v 4 的命令

  • 类似于 cp 命令 -- 实现本地备份传输数据
  • 类似于scp 命令 -- 远程备份传输数据
  • 类似于 rm 命令 -- 实现无差异同步备份
  • 类似于 ls 命令 -- 本地文件信息查看

2.5.1 rsync==cp

rsync /etc/hosts /tmp/

2.5.2 rsync == scp

pull 拉

rsync 1.1.1.1:/tmp/1.txt  /opt

push 推(推整个目录下的文件(不包括目录本身))

rsync -r /tmp 1.1.1.1:/tmp/

/tmp --表示将tmp目录本身及目录下的内容进行传输

/tmp/ --表示只传输tmp目录下面的内容信息

2.5.3 rsync== rm

rsync -a --delete /null/ /znix/

创建一个空目录,使用空目录进行无差异同步,将/null的所有文件同步到/znix内,并 删除/znix内多余的文件:

2.5.4 rsync == ls -l

rsync install.log

2.6 Rsync基于rsync-daemon认证的使用

与 ssh 认证不同,rsync 协议认证不需要依赖远程主机的 sshd 服务,但需要远程主机开启 rsyncd 服务,本地 rsyncd 服务可不必开启。另外,rsync 协议认证不是直接使用远程主机的真实系统账号,而是虚拟账号和虚拟密码,且可实现无需手动输入 密码,同时 rsync 协议认证需要配置模块对远程同步的目录进行限制。对比 ssh 认 证,rsync 协议认证安全性更高。

2.6.1 配置rsync服务端

1. vim /etc/rsyncd.conf

 2. 创建rsync用户

useradd -s /sbin/nologin -M rsync

3. 创建数据备份储存目录,目录修改属主

mkdir /slave/

chown -R rsync:rsync /slave/

4. 创建认证用户密码文件

echo "rsync_slave:nebula123" >>/etc/rsync.passwo rd

chmod 600 /etc/rsync.password

5. 启动rsync

rsync --daemon

2.6.2 配置rsync客户端(其他服务器为客户端)

1. 创建认证文件

客户端的认证文件只需要有密码即可

echo "nebula123" >>/etc/rsync.password

chmod 600 /etc/rsync.password

2. 实现数据传输

本文含有隐藏内容,请 开通VIP 后查看