使用SSH服务管理远程主机(RHEL8)

本文详细介绍了如何在RHEL8系统中管理网络服务,包括配置网卡参数、创建网络会话和绑定网卡。接着,文章讲解了SSH服务的配置,如安全密钥验证和远程控制,以及如何使用tmux实现不间断会话服务。最后,讨论了日志信息的检索方法,使用journalctl命令查询不同类型的系统日志。

内容概要:

  • 配置网络服务

  • 远程控制服务

  • 不间断会话服务

  • 检索日志信息

1、配置网络服务

1.1 配置网卡参数

在RHEL8中至少有五种配置网络的方法:

第①种配置网络的方法(vim编辑网卡配置文件):

使用vim编辑器来配置网卡参数,现在有一个名为ifcfg-ens160的网卡设备,将其配置为开机自启动,并且IP地址、子网掩码、网关等信息由人手工指定,其步骤如下:

使用vim编辑器打开/etc/sysconfig/network-scripts/目录下的ifcfg-ens160网卡配置文件;

vim /etc/sysconfig/network-scripts/ifcfg-ens160
  • 设备类型:TYPE=Ethernet

  • 地址分配模式:BOOTPROTO=static (其他选项 dhcp、none)

  • 网卡名称:NAME=ens160

  • 是否启动:ONBOOT=yes(none)

  • IP地址:IPADDR=192.168.10.10

  • 子网掩码:NETMASK=255.255.255.0

  • 网关地址:GATEWAY=192.168.10.1

  • DNS地址:DNS1=192.168.10.1

重新加载配置文件:

nmcli connection reload ens160

启动ens160网卡:

nmcli connection up ens160

使用ping命令测试网络是否连通:

ping -c 4 192.168.10.1
第②种配置网络的方法(nmtui命令):

192.168.10.10/24 其中24表示子网掩码中的前24位为网络号,后8位是主机号(与写成255.255.255.0效果是一样的)

第③种配置网络的方法(nm-connection-editor命令):
第④种配置网络的方法(右上角网络设置):
第⑤种配置网络的方法(nmcli connection modify ...):
nmcli connection modify ens160 ipv4.addresses 192.168.10.10/24 ipv4.gateway 192.168.10.1 ipv4.dns 192.168.10.1 ipv4.method manual
1.2 创建网络会话

RHEL和Centos默认使用NetworkManage来提供网络服务,这是一种动态管理网络配置的守护进程,能够让网络设备保持连接状态,可以使用nmcli命令来管理NetworkManage服务程序。nmcli是一款基于命令行的网络配置工具,它可以轻松查看网络信息或网络状态:

RHEL8系统支持网络会话功能,允许用户在多个配置文件中快速切换。使用nmcli命令并按照connection add con-name type ifname的格式来创建网络会话:

nmcli connection add con-name company ifname ens160 autoconnect no type ethernet ip4 192.168.10.10/24 gw4 192.168.10.1

使用nmcli命令配置过的网络会话是永久生效的,随时可以启动想要的网络会话:

nmcli connection up company

后续不需要网络会话时,直接使用nmcli connection delete 命令就能删除

nmcli connection delete company
1.3 绑定两块网卡
创建出一个bond网卡,命令与参数的意思是创建一个类型为bond(绑定)、名称为bond0、网卡名称为bond0的绑定设备,绑定模式为balance-rr:
nmcli connection add type bond con-name bond0 ifname bond0 bond.options 'mode=balance-rr'

这里使用的是balance-rr网卡绑定模式,其中rr是round-robin的缩写,全称为轮询模式、round-robin的特点是会根据设备顺序依次传输数据包,提供负载均衡的效果,让宽带的性能更好一些,而且一旦某个网卡发生故障,会马上切换到另外一个网卡设备上,保证网络传输不被中断。active-backup是另外一种比较常用的网卡绑定模式,它的特点是平时只有一个网卡正常工作,另外一个网卡随时待命,一旦工作中的网卡发生损坏,待命的网卡会自动顶替上去。

向bond0设备添加从属网卡

刚才创建成功的bond0设备当前仅仅是个名称,里面并没有真正能为用户传输数据的网卡设备,接下来就使用下面命令把ens160和ens192网卡添加进来。其中con-name参数后面接的是从属网卡的名称(可以随时设置),ifname参数后面接的是两块网卡的名称:

nmcli connection add type ethernet slave-type bond con-name  'bond0-port1' ifname ens160  master bond0
配置bond0设备的网络信息

配置网络参数的方法有很多,这里用nmcli命令依次配置网络的IP地址以及子网掩码、网关、DNS、搜索域和手动配置等参数:

nmcli connection modify bond0 ipv4.addresses 192.168.10.10/24
nmcli connection modify bond0 ipv4.gateway 192.168.10.1
nmcli connection modify bond0 ipv4.dns 192.168.10.1
nmcli connection modify bond0 ipv4.dns-search baidu.com
nmcli connection modify bond0 ipv4.method manual
启动它
nmcli connection up bond0

2、远程控制服务

2.1 配置sshd服务

SSH(Secure Shell)是一种能够以安全的方式提供远程登录的协议,也是目前远程管理Linux系统的首选方式。在此之前,一般使用FTP或Telnet来进行远程登录,但是它们以明文的形式在网络中传输账户密码和数据信息,因此很不安全。sshd是基于SSH协议开发的一款远程管理服务程序,不仅使用起来方便快捷,并且能够提供两种安全验证的方法:

  • 基于密码的验证--用账户和密码来验证登录

  • 基于密钥的验证--需要在本地生成密钥对,然后把密钥对中的公钥上传至服务器,并与服务器中的公钥进行比较,该方式相对来说更安全。

sshd服务的配置信息保存在/etc/ssh/sshd_config文件中,配置文件中包含的重要参数如下表:

参数

作用

Port 22

默认的sshd服务端口号

ListenAddress 0.0.0.0

设定sshd服务监听的IP地址

Protocol 2

SSH协议的版本号

HostKey /etc/ssh/ssh_host_key

SSH协议版本为1时,DES私钥的存放位置

HostKey /etc/ssh/ssh_host_rsa_key

SSH协议版本为2时,RSA私钥的存放位置

HostKey /etc/ssh/ssh_host_dsa_key

SSH协议版本为2时,DSA私钥的存放位置

PermitRootLogin yes

设定是否允许root管理员直接登陆

StrictModes yes

当远程用户的私钥改变时直接拒绝登录

MaxAuthTries 6

最大密码尝试次数

MaxSessions 10

最大终端数

PasswordAuthentication yes

是否允许密码验证

PermitEmptyPasswords no

是否允许空密码登录

在RHEL8中默认已经安装了sshd服务程序,使用ssh命令远程连接服务器,其格式为ssh [参数]主机IP地址,要退出登录则执行exit命令,第一次访问时需要输入yes来确认对方主机的指纹信息:

ssh 192.168.10.10

接下来要求输入密码:

温馨提示:一般的服务程序并不会在配置文件修改之后立即获得最新的参数,如果想让新配置文件生效,则需要手动重新启动相应的服务程序,最好将这个服务程序加入到开机启动项中。

2.2 安全密钥验证
在客户端主机中生成“密钥对”:

按回车键或设置密钥的存储路径

按回车键或设置密钥的密码

再次按回车键或设置密钥的密码

把客户端主机中生成的公钥文件上传至远程服务器:
对服务器进行设置,使其只允许密钥验证,拒绝传统的密码验证方式:
客户端尝试登录服务器
2.3 远程传输命令

虽然SSH协议可以远程控制服务器、传输信息,如果想要传输文件,可以使用scp命令,scp(secure copy)是一个基于SSH协议在网络之间进行安全传输的命令,其格式为“scp [参数]本地文件 远程账户@远程IP地址:远程目录”,scp命令中可用的参数及作用如下表:

参数

作用

-v

显示详细的连接进度

-P

指定远程主机的sshd端口号

-r

用于传送文件夹(递归操作)

-6

使用IPV6协议

远程上传

远程下载

3、 不间断会话服务

使用sshd服务时,当与远程主机的会话被关闭时,在远程主机上运行的命令也随之被中断,Terminal Multiplexer(终端复用器,简称Tmux)是一款能够实现多窗口远程控制的开源服务程序。简单说就是为了解决网络异常中断或为了同时控制多个远程终端窗口而设计的程序,Tmux实现实了如下功能:

  • 会话恢复:即便网络中断,也可让会话随时恢复,确保用户不会失去对远程会话的控制。

  • 多窗口:每个会话都是独立运行的,拥有各自独立的输入输出终端窗口,终端窗口内显示过的信息也将被分开隔离保存,以便下次使用时依然能看见之前的操作记录。

  • 会话共享:当多个用户同时登录到远程服务器时,便可以使用会话共享功能让用户之间的输入输出信息共享。

安装Tmux服务程序

yum install -y tmux
3.1 管理远程会话

输入tmux命令进入会话窗口中

底部出现一个绿色状态栏,里面分别显示的是会话编号、名称及主机信名和系统时间,退出会话窗口的命令是exit。

会话窗口的编号是从0开始自动排序的,也可以指定名称,比如创建名称为backup的会话窗口:

tmux new -s backup

如果我们要忙别的事情,但会话窗口中执行的进程不能被中断,此时可以使用detach参数将会话隐藏到后台:

如果每次输入detach麻烦,可以直接关闭本地终端窗口,Tmux服务程序会自动进行保存。

这样操作以后,服务和进程都会一直在后台默默运行,不会因为窗口被关闭而造成数据丢失,如果想查看一下后台有哪些会话:

回归到backup会话的方法是tmux命令后面加attach和会话编号或会话名称就可以:

tmux attach -t backup

在日常的生产环境其实并不是必须要先创建会话窗口,然后再开始工作。可以直接tmux命令执行要运行的指令,这样命令中操作地一切都会被记录下来,当命令执行结束后,后台会话也会自动结束

tmux new "vim demo.yaml”
3.2 管理多窗格

先创建一个会话,使用“tmux split-window”命令可以创建上下切割的多窗格终端界面

使用“tmux split-window -h”可以创建左右切割的多窗格终端界面

Ctrl+B+方向键可以调整窗格的尺寸,Tmux不间断会话多窗格的切换命令:

命令

作用

tmux select-pane -U

切换至上方的窗格

tmux select-pane -D

切换至下方的窗格

tmux select-pane -L

切换至左边的窗格

tmux select-pane -R

切换至右边的窗格

Tmux不间断会话多窗格的互换命令

命令

作用

tmux swap-pane -U

将当前窗格与上方的窗格互换

tmux swap-pane -D

将当前窗格与下方的窗格互换

tmux swap-pane -L

将当前窗格与左边的窗格互换

tmux swap-pane -R

将当前窗格与右边的窗格互换

在工作中通过命令切换窗格难免有些麻烦,实际上Tmux服务程序为用户提供了一系列快捷键来执行窗格的切换。方法是先按下Ctrl+B组合键,然后松手后再迅速按下其后续按键,而不是一起按下。

快捷键

作用

%

划分为左右两个窗格

划分为上下两个窗格

<方向键>

切换到上下左右相邻的一个窗格

切换至上一个窗格

o

切换至下一个窗格

{

将当前窗格与上一个窗格位置互换

}

将当前窗格与下一个窗格互换

x

关闭窗格

将当前窗格拆分成独立窗口,而不在与其他窗格通处一个界面

q

显示窗格编号

3.3 会话共享功能

使用ssh服务将客户端A远程连接到服务器,随后使用tmux服务创建一个新的会话窗口,名称为share:

ssh 192.168.10.10
tmux new -s share

使用ssh服务将客户端B远程连接到服务器,并执行获取远程会话的命令:

ssh 192.168.10.10
tmux attach-session -t share

操作完成后,两台客户机的所有终端信息都会被实时同步,它们可以一起共享同一个会话窗口。

4、检索日志信息

在Linux系统中常见日志保存路径如下表:

文件路径

作用

/var/log/boot.log

系统开机自检事件及引导过程等信息

/var/log/lastlog

用户登录成功时间、终端名称及IP地址等信息

/var/log/btmp

记录登陆失败的时间、终端名称及IP地址等信息

/var/log/messages

系统及各个服务的运行和报错信息

/var/log/secure

系统安全相关信息

/var/log/wtmp

系统启动与关机等相关信息

journalctl命令用于检索和管理系统日志信息,英文全称为“journal control”,journalctl命令的常用参数如下表:

参数

作用

-k

内核日志

-b

启动日志

-u(--unit)

指定服务

-n

指定条数

-p(--priority)

指定类型

-f(--follow)

实时刷新(追踪日志)

-g(-grep)

筛选

--since

指定时间

--disk-usage

占用空间

查询系统中最后五条日志信息:

查询系统中指定服务的日志信息:

查询系统中指定类型的日志信息:

日志信息等级分类如下表:

日志等级

说明

emerg

系统出现严重故障,如内核崩溃

alert

应立即修复的故障,如数据库损坏

crit

危险性较高的故障,如硬盘损坏导致程序运行失败

err

危险性一般的故障,如某个服务启动或运行失败

warning

警告信息,如某个服务功能或参数出错

notice

不严重的一般故障,只是需要抽时间处理的情况

info

通用性消息,用于提示一些有用的信息

debug

调试程序所产生的的信息

none

没有优先级,不进行日志记录

查询今日的日志信息:

查询最近一小时的日志信息:

仅查询12点整到15点整的日志信息:

仅查询从2023年1月1日到2023年3月1日的日志信息:

journalctl帮助信息如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值