Linux巩固篇009-Linux ssh服务管理

简介: 纸上得来终觉浅,绝知此事要躬行

前言

身为一个三年的运维工程师,从开发转测开再转运维,都是不断学习的过程,未必开发才是最优秀的,找到适合自己的职业不断深耕,你也会在自己的行业大放光彩,本系列依照《Linux就该这么学》系列随书学习练习操作,将一些课本上不顺畅的地方,全部以最简方式免费开源展示给大家,资源大家可以自行百度,也希望大家多关注刘遄老师的第二版关于centos8的丛书,学习最前沿的Linux相关技术。

常用命令汇总

配置网络服务

配置网络参数

使用 Vim 编辑器将网卡配置文件中的 ONBOOT 参数修改成 yes,这样在系统重启后网卡就被激活了,其他配置如下所示:

[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33

TYPE="Ethernet"

PROXY_METHOD="none"

BROWSER_ONLY="no"

BOOTPROTO="dhcp"

DEFROUTE="yes"

IPV4_FAILURE_FATAL="no"

IPV6INIT="yes"

IPV6_AUTOCONF="yes"

IPV6_DEFROUTE="yes"

IPV6_FAILURE_FATAL="no"

IPV6_ADDR_GEN_MODE="stable-privacy"

NAME="ens33"

UUID="176e0076-c74e-4c93-ba8f-aa0fd9aeca4d"

DEVICE="ens33"

ONBOOT="yes"

手动重启相应的服务,ping一下外网通不通畅

[root@localhost ~]# systemctl restart network  

[root@localhost ~]# ping -c 4 www.baidu.com

创建网络会话

nmcli 命令

管理 Network  Manager 服务。nmcli 是一款基于命令行的网络配置工具,功能丰富,参数众多。

网络连接状态的五种输出结果:

full:网络正常连接

limited:以连接网络,但无法上网

portal:以连接网络,但需要认证登录后才能上网

none:没有连网

unknown:无法识别网络

查看网卡

[root@localhost ~]# nmcli connection show

NAME    UUID                                  TYPE      DEVICE  

ens33   176e0076-c74e-4c93-ba8f-aa0fd9aeca4d  ethernet  ens33  

virbr0  327534dd-633c-4e37-ae7b-ae0398d7e28d  bridge    virbr0  

查看网卡详情

[root@localhost ~]# nmcli con show ens33  

connection.id:                          ens33

connection.uuid:                        176e0076-c74e-4c93-ba8f-aa0fd9aeca4d

...

使用 con-name 参数指定公司所使用的网络会话名称 company,然后依次用 ifname 参数指定本机的网卡名称

[root@localhost ~]# nmcli connection add con-name company type ethernet ifname ens33

Connection 'company' (4a330c0e-17bc-46b6-a5ac-5334c8057d54) successfully added.

[root@localhost ~]#  nmcli connection show

NAME     UUID                                  TYPE      DEVICE  

ens33    176e0076-c74e-4c93-ba8f-aa0fd9aeca4d  ethernet  ens33  

virbr0   327534dd-633c-4e37-ae7b-ae0398d7e28d  bridge    virbr0  

company  4a330c0e-17bc-46b6-a5ac-5334c8057d54  ethernet  --      

启动company网卡

[root@localhost ~]# nmcli connection up company  

Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/4)

两块网卡绑定

生产环境必须提供 7×24 小时的网络传输服务。借助于网卡绑定技术,不仅可以提高网络传输速度,更重要的是,还可以确保在其中一块网卡出现故障时,依然可以正 常提供网络服务。

1.添加网卡设备,虚拟机操作非常简单点两下确认一下即可,网卡类型要相同

image.png

2.vim配置网卡参数,原本独立的网卡设备此时需要被配置成为一块“从属”网卡,服务于“主”网卡, 不应该再有自己的 IP 地址等信息。

(修改时区:[root@localhost ~]# timedatectl set-timezone Asia/Shanghai

停掉网络管理,开始第一步

systemctl disable --now NetworkManager

先打一个备份出来以免出问题

cp /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-ens33.bak

开始初始化设置网卡一

vim /etc/sysconfig/network-scripts/ifcfg-ens33  

TYPE=Ethernet  

BOOTPROTO=none  

ONBOOT=yes  

USERCTL=no  

DEVICE=ens33

MASTER=bond0  

SLAVE=yes

开始初始化设置网卡二

vim /etc/sysconfig/network-scripts/ifcfg-ens36

TYPE=Ethernet  

BOOTPROTO=none  

ONBOOT=yes  

USERCTL=no  

DEVICE=ens36

MASTER=bond0  

SLAVE=yes

开始配置对外网卡(主卡)

vim /etc/sysconfig/network-scripts/ifcfg-bond0

DEVICE=bond0

TYPE=bond0

BONDING_MASTER=yes

BOOTPROTO=none

ONBOOT=yes

IPADDR=192.168.227.130

NETMASK=255.255.255.0

GATEWAY=192.168.227.2

BONDING_OPTS="mode=0 miimon=100"

BONDING_MASTER=yes

NM_CONTROLLED=no

设置相关切换配置

vim /etc/modprobe.d/bond.conf

alias bond0 binding

options bond0 miimon=100 mode=0

开启网卡混杂模式

chmod +x /etc/rc.local

vi /etc/rc.local

ip link set ens33 promisc on

ip link set ens36 promisc on

重启网络

systemctl restart network

测试

reboot

切掉一个网卡还可以正常访问网络

中间去ping外网的时候会有DUP

远程控制服务

配置 sshd 服务

sshd 服务的配置信息保存在/etc/ssh/sshd_config 文 件中。

image.png在 RHEL 7 系统中,已经默认安装并启用了 sshd 服务程序。接下来使用 ssh 命令进行远 程连接,其格式为“ssh [参数] 主机 IP 地址”。要退出登录则执行 exit 命令

ssh 192.168.227.130

exit

禁止以 root 管理员的身份远程登录到服务器

首先使用 Vim 文本编辑器打开 sshd 服务的主配置文件,然后把 第 48 行#PermitRootLogin yes 参数前的井号(#)去掉,并把参数值 yes 改成 no,这样就不再 允许 root 管理员远程登录了。

vim /etc/ssh/sshd_config

image.png

systemctl restart sshd

systemctl enable sshd

安全密钥验证

1.客户端主机中生成“密钥对”

[root@bogon ~]# ssh-keygen

Generating public/private rsa key pair.

Enter file in which to save the key (/root/.ssh/id_rsa):  按回车

Created directory '/root/.ssh'.

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:YDelEvJyarzCr2mxncBx0RrbghAD1S/eivvprH88MTY root@bogon

The key's randomart image is:

+---[RSA 2048]----+

|=o.....   .      |

|..  +o.. o       |

| . ..B* +        |

|  o.*=o+ .       |

| . +++  S        |

| .+...E          |

|  o*.= +         |

|  +=+.+          |

| .=BB. .         |

+----[SHA256]-----+

2.把客户端主机中生成的公钥文件传送至远程主机

[root@bogon ~]# ssh-copy-id 192.168.227.137

/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"

The authenticity of host '192.168.227.137 (192.168.227.137)' can't be established.

ECDSA key fingerprint is SHA256:9nUhBRw1bSTECvS/7T8Mpa5GVE+kOTwhjzid0e1bm9k.

ECDSA key fingerprint is MD5:47:d8:06:aa:da:3a:aa:45:b8:ea:3c:3a:68:2d:99:6e.

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.227.137's password:  

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh '192.168.227.137'"

and check to make sure that only the key(s) you wanted were added.

3.对服务器进行设置,使其只允许密钥验证,拒绝传统的口令验证方式

vim /etc/ssh/sshd_config

image.png

4.在客户端尝试登录到服务器,此时无须输入密码也可成功登录。

[root@bogon ~]# ssh 192.168.227.137

Last login: Mon Jun 12 18:42:33 2023 from 192.168.227.1

[root@bogon ~]# ifconfig  

ens33: flags=4163  mtu 1500

       inet 192.168.227.137  netmask 255.255.255.0  broadcast 192.168.227.255

       inet6 fe80::a4f1:a45:b394:6872  prefixlen 64  scopeid 0x20

       ether 00:0c:29:87:7f:af  txqueuelen 1000  (Ethernet)

       RX packets 846  bytes 93533 (91.3 KiB)

       RX errors 0  dropped 0  overruns 0  frame 0

       TX packets 565  bytes 85722 (83.7 KiB)

       TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73  mtu 65536

       inet 127.0.0.1  netmask 255.0.0.0

       inet6 ::1  prefixlen 128  scopeid 0x10

       loop  txqueuelen 1000  (Local Loopback)

       RX packets 0  bytes 0 (0.0 B)

       RX errors 0  dropped 0  overruns 0  frame 0

       TX packets 0  bytes 0 (0.0 B)

       TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

virbr0: flags=4099  mtu 1500

       inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255

       ether 52:54:00:60:3f:ed  txqueuelen 1000  (Ethernet)

       RX packets 0  bytes 0 (0.0 B)

       RX errors 0  dropped 0  overruns 0  frame 0

       TX packets 0  bytes 0 (0.0 B)

       TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

[root@bogon ~]# exit

logout

Connection to 192.168.227.137 closed.

注意客户端和服务端的区别,是客户端发出秘钥串链接服务端,然后客户端传公钥文件到主机,然后服务端限制口令,最后客户端连服务端,我这里脑子抽了一直拿服务端连客户端导致一直报错,希望大家不会有这个问题。

远程传输命令

scp(secure copy)是一个基于 SSH 协议在网络之间进行安全传输的命令,其格式为“scp  [参数] 本地文件 远程帐户@远程 IP 地址:远程目录”

image.png由于 scp 命令是基于 SSH 协议进行文件传送的,而上边刚配好密钥验证, 因此当前在传输文件时,并不需要账户和密码。

[root@bogon ~]# echo "learn linux" > readme.txt

[root@bogon ~]# scp /root/readme.txt 192.168.227.137:/home

readme.txt                  100%   12     9.1KB/s   00:00

反向传输  

[root@bogon ~]# scp 192.168.227.137:/etc/redhat-release /root

redhat-release              100%    38    26.5KB/s  00:00

不间断会话服务

screen 是一款能够实现多窗口远程控制的开源服务程序,简单来说就是为了解决网络异 常中断或为了同时控制多个远程终端窗口而设计的程序。

[root@bogon ~]#  yum install screen

管理远程会话

screen 命令能做的事情非常多:

用-S 参数创建会话窗口;

用-d 参数将指定会话进行 离线处理;

用-r 参数回复指定会话;

用-x 参数一次性恢复所有的会话;

用-ls 参数显示当前已 有的会话;

用-wipe 参数把目前无法使用的会话删除。

[root@bogon ~]# screen -S backup

[root@bogon ~]# screen -ls  

There is a screen on:

       3736.backup     (Attached)

1 Socket in /var/run/screen/S-root.

[root@bogon ~]# exit

演示 screen 不间断会话服务

A窗口

screen -S linux

tail -f /var/log/messages

关闭A窗口,打开B窗口,查看不间断会话并进入

screen -ls

screen -r linux

会话共享功能

A窗口

screen -S linux

tail -f /var/log/messages

B窗口

screen -x

结语

简问简答

1.在 Linux 系统中有多种方法可以配置网络参数,请列举几种。

答:配置网卡参数可以使用 nmtui 命令、nmcli 命令或者直接编辑网卡配置文件来实现对 网卡参数的修改。

2.在 RHEL 7 系统中使用网卡会话技术的目的是什么?

答:使用 nmcli 命令来管理网卡会话的目的是为了快速切换网卡参数,以便适应不同的工 作场景。

3.请简述网卡绑定技术 mode6 模式的特点。

答:平时两块网卡均工作,且自动备援,无须交换机设备提供辅助支持。

4.在 Linux 系统中,当通过修改其配置文件中的参数来配置服务程序时,若想要让新配置的 参数生效,还需要执行什么操作?

答:需要重新启动相关的服务程序,或让服务程序重新加载配置文件,或重启系统。

5.sshd 服务的口令验证与密钥验证方式,哪个更安全?

答:一般情况下,密钥验证方式更加安全。若用户若认证有更高的安全需求,还可以再对 密钥文件进行口令加密,从而实现双重加密。

6.想要把本地文件/root/out.txt 传送到地址为 192.168.10.20 的远程主机的/home 目录下,且本 地主机与远程主机均为 Linux 系统,最为简便的传送方式是什么?

答:执行命令 scp /root/out.txt root@192.168.10.20:/home,并在进行口令验证后即可开 始传送。  

7. screen 服务程序能够让用户实现远程控制的不间断会话服务,即便网络发生中断也不 丢失对远程主机的会话控制。那么,当想要恢复到一个名为 linux 的会话窗口时,应该 怎么做呢?

答:执行命令 screen -r linux 即可恢复到这个会话窗口中。

如果想根据教程实践的朋友们可以通过阿里云ecs服务器免费试用和低价购买,入口如下

入口一:新人免费试用

入口二:大学生免费试用

入口三:低价服务器购买

入口四:低价服务器购买2

入口五:建站特惠购买




目录
相关文章
|
14天前
|
Linux 应用服务中间件 Shell
linux系统服务二!
本文详细介绍了Linux系统的启动流程,包括CentOS 7的具体启动步骤,从BIOS自检到加载内核、启动systemd程序等。同时,文章还对比了CentOS 6和CentOS 7的启动流程,分析了启动过程中的耗时情况。接着,文章讲解了Linux的运行级别及其管理命令,systemd的基本概念、优势及常用命令,并提供了自定义systemd启动文件的示例。最后,文章介绍了单用户模式和救援模式的使用方法,包括如何找回忘记的密码和修复启动故障。
36 5
linux系统服务二!
|
14天前
|
Linux 应用服务中间件 Shell
linux系统服务!!!
本文详细介绍了Linux系统(以CentOS7为例)的启动流程,包括BIOS自检、读取MBR信息、加载Grub菜单、加载内核及驱动程序、启动systemd程序加载必要文件等五个主要步骤。同时,文章还对比了CentOS6和CentOS7的启动流程图,并分析了启动流程的耗时。此外,文中还讲解了Linux的运行级别、systemd的基本概念及其优势,以及如何使用systemd管理服务。最后,文章提供了单用户模式和救援模式的实战案例,帮助读者理解如何在系统启动出现问题时进行修复。
35 3
linux系统服务!!!
|
3月前
|
Linux
在Linux中,怎么把脚本添加到系统服务里,即用 service 来调用?
在Linux中,怎么把脚本添加到系统服务里,即用 service 来调用?
|
9天前
|
安全 Linux Shell
ssh 远程控制服务
SSH(Secure Shell)是一种用于远程登录的安全协议,相比FTP和Telnet,它提供了更高的安全性,避免了明文传输带来的风险。要使用SSH远程管理Linux系统,需要配置sshd服务。本文介绍了如何克隆Linux服务器、修改网络配置,并通过SSH连接两台服务器,最后在目标服务器上创建一个日志文件。
26 4
|
11天前
|
监控 Ubuntu Linux
使用VSCode通过SSH远程登录阿里云Linux服务器异常崩溃
通过 VSCode 的 Remote - SSH 插件远程连接阿里云 Ubuntu 22 服务器时,会因高 CPU 使用率导致连接断开。经排查发现,VSCode 连接根目录 ".." 时会频繁调用"rg"(ripgrep)进行文件搜索,导致 CPU 负载过高。解决方法是将连接目录改为"root"(或其他具体的路径),避免不必要的文件检索,从而恢复正常连接。
|
2月前
|
安全 Linux 网络安全
Linux端的ssh如何升级?
Linux端的ssh如何升级?
284 59
|
18天前
|
Linux 数据库
Linux服务如何实现服务器重启后的服务延迟自启动?
【10月更文挑战第25天】Linux服务如何实现服务器重启后的服务延迟自启动?
83 3
|
18天前
|
关系型数据库 MySQL Linux
Linux系统如何设置自启动服务在MySQL数据库启动后执行?
【10月更文挑战第25天】Linux系统如何设置自启动服务在MySQL数据库启动后执行?
64 3
|
1月前
|
Ubuntu Linux 网络安全
Linux中服务管理问题
【10月更文挑战第4天】
25 2
|
1月前
|
应用服务中间件 Linux Shell
Linux 配置 Nginx 服务的详细步骤,绝对干货
Linux 配置 Nginx 服务的详细步骤,绝对干货
72 0