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

入口五:建站特惠购买




目录
相关文章
|
1月前
|
Linux 网络安全 Docker
盘古栈云,创建带ssh服务的linux容器
创建带ssh服务的linux容器
267 146
|
2月前
|
缓存 安全 Linux
六、Linux核心服务与包管理
在没有网络的情况下,使用系统安装光盘是获取RPM包的常用方法。场景二:配置本地文件镜像源 (使用系统安装光盘/ISO)(检查RPM包的GPG签名以保证安全) 或。YUM/DNF包管理工具 (yum/dnf)(此处可以放置您为本主题制作的思维导图)处理依赖问题的危险选项 (应极力避免)(覆盖文件、替换已安装包)。(list) 则是列出文件。(query file) 是。(假设系统安装光盘已挂载到。信息 (verbose)。(upgrade) 选项。(all) 已安装的包。(package) 选项
295 11
|
2月前
|
Ubuntu 网络安全 数据安全/隐私保护
搭建SSH服务于RK3399平台上的Ubuntu 18.04,实现远程连接
以上步骤涵盖从安 装 到配制再至实际使 用户建立Ssh 连接所需知识点 。务必注意,在对外提供Ssh 访问
153 2
|
5月前
|
应用服务中间件 网络安全 数据安全/隐私保护
网关服务器配置指南:实现自动DHCP地址分配、HTTP服务和SSH无密码登录。
哇哈哈,道具都准备好了,咱们的魔术秀就要开始了。现在,你的网关服务器已经魔法满满,自动分配IP,提供网页服务,SSH登录如入无人之境。而整个世界,只会知道效果,不会知道是你在幕后操控一切。这就是真正的数字世界魔法师,随手拈来,手到擒来。
291 14
|
4月前
|
监控 Linux 网络安全
FinalShell SSH工具下载,服务器管理,远程桌面加速软件,支持Windows,macOS,Linux
FinalShell是一款国人开发的多平台SSH客户端工具,支持Windows、Mac OS X和Linux系统。它提供一体化服务器管理功能,支持shell和sftp同屏显示,命令自动提示,操作便捷。软件还具备加速功能,提升访问服务器速度,适合普通用户和专业人士使用。
898 0
|
6月前
|
Ubuntu Linux 网络安全
在Linux云服务器上限制特定IP进行SSH远程连接的设置
温馨提示,修改iptables规则时要格外小心,否则可能导致无法远程访问你的服务器。最好在掌握足够技术知识和理解清楚操作含义之后再进行。另外,在已经配置了防火墙的情况下,例如ufw(Ubuntu Firewall)或firewalld,需要按照相应的防火墙的规则来设置。
341 24
|
7月前
|
Linux Shell
在Linux、CentOS7中设置shell脚本开机自启动服务
以上就是在CentOS 7中设置shell脚本开机自启动服务的全部步骤。希望这个指南能帮助你更好地管理你的Linux系统。
591 25
|
5月前
|
安全 网络协议 Linux
Linux查 ssh端口号和服务状态
本指南详细介绍如何检查SSH服务的运行状态,包括通过进程命令验证服务启动、查看监听端口、检测系统服务状态以及防火墙配置。同时提供安全建议,如修改默认端口、禁用密码登录和定期更新系统,确保SSH服务稳定与安全。适用于不同Linux发行版(Systemd/SysVinit),帮助用户全面排查和优化SSH配置。
|
7月前
|
安全 Linux 网络安全
在Linux(CentOS和AWS)上安装更新的git2的方法并配置github-ssh
经过以上这些步骤,你现在就能在GitHub上顺利往返,如同海洋中的航海者自由驰骋。欢迎你加入码农的世界,享受这编程的乐趣吧!
293 10
|
8月前
|
Linux iOS开发 MacOS
Gitea Enterprise 23.4.0 (Linux, macOS, Windows) - 本地部署的企业级 Git 服务
Gitea Enterprise 23.4.0 (Linux, macOS, Windows) - 本地部署的企业级 Git 服务
224 0
Gitea Enterprise 23.4.0 (Linux, macOS, Windows) - 本地部署的企业级 Git 服务