使用SSH服务管理远程主机

配置网络参数

这里使用的是nmtui命令来配置网络

使用SSH服务管理远程主机_远程管理

执行nmtui命令运行网络配置工具

使用SSH服务管理远程主机_远程管理_02

选中Edit a connection并按下回车键

使用SSH服务管理远程主机_SSH服务_03

在RHEL7中网卡的名称变成了类似于eno16777728这样的名字,选中要编辑的网卡名称,然后按下Edit(编辑)按钮

使用SSH服务管理远程主机_SSH服务_04

在服务器主机的网络配置信息中填写IP地址192.168.10.10/24,至此Linux系统中配置网络的步骤就结束了,单击????按钮保存配置。

通过修改配置文件修改IP地址等网络参数

使用vim文本编辑器对网络配置文件进行修改(Linux系统中一切都是文件);vim /etc/sysconfig/network-scripts/ifcfg-eno16777728

使用SSH服务管理远程主机_SSH服务_05

当修改完Linux系统中的服务配置文件后,并不会对服务程序立即产生效果,要让服务程序获取到最新的配置文件,需要手动重启相应的服务,之后就可以看到网络流畅了;
使用SSH服务管理远程主机_远程管理_06

创建网络会话

RHEL和CentOS系统默认使用NetworkManager来提供网络服务,这是一种动态管理网络配置的守护进程,能够让网络设备保持连接状态。可以使用nmcli命令来管理NetworkManager服务。nmcli是一款基于命令行的网络配置工具,功能丰富,参数众多。

使用SSH服务管理远程主机_远程管理_07

RHEL7系统支持网络会话功能,语序用户在多个配置文件中快速切换。如果我们在公司网络中使用笔记本电脑时需要手动指定网络的IP地址,而回到家中则是使用DHCP自动分配IP地址,这就需要麻烦地频繁修改IP地址,但是使用网络会话功能后一切变得简单多了——只需要在不同的使用环境中激活相应的网络会话,就会实现网络配置信息的自动切换。
使用nmcli命令并按照“nmcli connection add con-name type ifname ”的格式来创建网络会话,假设将公司网络中的网络会话称之为compant,将家庭网络中的网络会话称之为house现在依次创建各自的网络会话。

使用SSH服务管理远程主机_远程管理_08

使用nmcli命令配置过的网络会话是永久生效的,这样当我们下班回家后,顺手启用house网络会话,网卡就能自动通过DHCP获取到IP地址了。

使用SSH服务管理远程主机_SSH服务_09

绑定两块网卡

一般来说,生产环境必须提供7x24小时的网络传输服务。借助于网卡绑定技术,不仅可以提高网络传输速度,更重要的是,还可以确保在其中一块网卡出现故障时,依然可以正常的提供网络服务。假设我们对两块网卡实施了绑定技术,这样就正常工作中它们会共同传输数据,使得网络数据传输的速度变得更快;而且即使有一块网卡突然出现了故障,另外一块网卡便会立即自动顶替上去,保证数据传输不会中断。
1.在虚拟机系统中添加一块网卡设备,请确保两张网卡都处在同一个网络连接中-即网卡模式相同。

使用SSH服务管理远程主机_远程管理_10

2.使用VIM文本编辑器来配置网卡设备的绑定参数。我们需要对参与绑定的网卡设备进行“初始设置”。注意:这些原本独立的网卡设备此时需要被配置成为一块“从属”网卡,服务于“主”网卡,不应该再有自己的IP地址等信息。在进行了初始设置之后,它们就可以支持网卡绑定。

使用SSH服务管理远程主机_SSH服务_11

还需要将绑定后的设备命名为bond0并把IP地址等信息填写进去,这样当用户访问相应服务的时候,实际上就是由这两块网卡设备在共同提供服务

使用SSH服务管理远程主机_远程管理_12

3.让Linux内核支持网卡绑定驱动,常见的网卡绑定驱动有三种模式——mode0、mode1、mode6

模式说明
mode0(平衡负载模式)平时两块网卡均工作,且自动备援,但需要在与服务器本地网卡相连的交换设备上进行端口聚合来支持绑定技术
mode1(自动备援模式)平时只有一块网卡工作,在它故障后自动替换为另外的网卡
mode6(平衡负载模式)平时两块网卡均工作,且自动备援,无须交换机设备提供服务支持

比如有一台用于提供NFS或者samba服务的文件服务器,它所能提供的最大网络传输速度为100Mbit/s,但是访问该服务器的用户数量特别多,那么它的访问压力一定很大。在生产环境中,网络的可靠性极为重要,而且网络传输速度也必须得到保证。针对这样的情况,比较好的选择就是mode6网卡绑定驱动模式了。因为mode6能够让两块网卡同时一起工作,当其中一块网卡出现故障后能自动备援,且无需交换机设备支援,从而提供了可靠的网络传输保障。

使用SSH服务管理远程主机_SSH服务_13

重启网络服务后网卡绑定操作即可成功。正常情况下只有bond0网卡设备才会有IP地址等信息。

使用SSH服务管理远程主机_远程管理_14

可以在本地主机执行ping 192.168.44.200命令检查网络的连通性。

使用SSH服务管理远程主机_SSH服务_15

配置SSHD服务

SSH是一种能够以安全的方式提供远程登录的协议,也是目前远程管理Liunx系统的首选方式。在此之前,一般使用FTP和Telnet来进行远程登陆。但是因为它们以明文的形式在网络中传输账户密码和数据信息,因此很不安全,很容易受到黑客发起的中间人攻击,这轻则篡改传输的数据信息,重则直接抓取服务器的账号密码。
想要使用SSH协议来远程管理Liunx系统,则需要部署配置sshd服务程序,sshd是基于SSH协议开发的一款远程管理服务程序,不仅使用起来方便快捷,而且能够提供两种安全验证的方法。
基于口令的验证——用账号和密码来验证登录;
基于密钥的验证——需要在本地生成密钥对,然后把密钥对中的公钥上传至服务器,并与服务器中的公钥进行比较;该方式相较来说更安全。
ssh服务的配置信息保存在/etc/ssh/sshd_config文件中,而配置文件中有许多以#号开头的注释行。

参数作用
Port 22默认的SSHD服务端口
PermitRootLogin yes设定是否允许root管理员直接登录
MaxAuthTries 6最大密码尝试次数
MaxSessions 10最大终端数
PasswordAuthentication yes是否允许密码验证
PermitEmptyPasswords no是否语序空密码登录(很不安全)

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

使用SSH服务管理远程主机_SSH服务_16

如果禁止以root管理员的身份远程登陆到服务器,则可以大大降低被黑客暴力破解密码的几率。下面进行相应配置。首先使用Vim文本编辑器打开sshd服务的主配置文件,然后把第48行的#PermitRootLogin yes参数前的#号去掉,并把参数值yes改成no,这样就不再允许管理员远程登陆了,记得最后保存文件并退出。

使用SSH服务管理远程主机_SSH服务_17

一般的服务程序并不会在配置文件修改之后立即获得最新的参数。如果想让新配置文件生效,需要手动重启相应的服务程序。最好也将这个服务程序加入到开机启动项中,这样系统在下一次启动时,该服务程序便会自动运行,继续为用户提供服务。

使用SSH服务管理远程主机_远程管理_18

当root管理员再来尝试访问sshd服务i程序时,系统会提示不可访问的错误信息

使用SSH服务管理远程主机_SSH服务_19

安全密钥验证

加密是对信息进行编码和解码的技术,它通过一定的算法(密钥)将原本可以直接阅读的明文信息转换成密文形式。密钥即是密文的钥匙,有私钥和公钥之分。在传输数据时,如果担心被他人监听或截获,就可以在传输前先使用公钥对数据加密处理,然后在传送。这样,只有掌握私钥的用户才能解密这段数据,除此之外的其他人即便截获了数据,一般也很难将其破译为明文信息。
1.在客户端主机中生成”密钥对“

使用SSH服务管理远程主机_SSH服务_20

第2步:将客户端主机中生成的公钥文件传送至远程主机

使用SSH服务管理远程主机_SSH服务_21

第3步:对服务器进行设置,使其只允许密钥验证,拒绝传统的口令验证方式。记得在修改配置文件后保存并重启sshd服务程序

使用SSH服务管理远程主机_SSH服务_22

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

使用SSH服务管理远程主机_SSH服务_23

远程传输命令

scp时一个基于SSH协议在网络之间进行安全传输的命令。其格式为:
”scp [参数] 本地文件 远程账号@远程IP地址:远程目录“
scp不仅能够通过网络传送数据,而且所有的数据都将进行加密处理。例如:如果想把一些文件通过网络从一台主机传递到其他主机,这两台主机又恰巧是Linux系统,这时使用scp命令就可以轻松完成文件的传递

参数作用
-v显示详细的连接进度
-P指定远程主机的sshd端口号
-r用于传送文件夹
-6使用ipv6协议

在使用scp命令把文件从本地复制到远程主机时,首先需要以绝对路劲的形式写清本地文件的存放位置。如果要传送整个文件夹内的所有数据,还需要额外添加参数-r进行递归操作。然后写上要传送的远程主机的IP地址,远程服务器便会要求进行身份验证了。如果想要指定用户的身份进行验证,可使用用户名@主机地址的参数格式。最后需要在远程主机的IP地址后面添加冒号,并在后面写上要传送到远程主机的那个文件夹中。只要参数正确并且成功验证了用户身份,即可开始传送工作。提示:前设置好了密钥验证,因此当前在传输文件时,并不需要账号和密码。

使用SSH服务管理远程主机_远程管理_24

还可以使用scp命令把远程主机上的文件下载到本地主机,其命令格式为:
scp [参数] 远程用户@远程IP地址:远程文件 本地目录

使用SSH服务管理远程主机_SSH服务_25

不间断会话服务

在学习sshd服务时,不知有没有注意到这样一个事情:当与远程主机的会话被关闭时,在远程主机上运行的命令也随之被中断
如果我们正在使用命令来打包文件,或者正在使用脚本安装某个服务程序,中途是绝对不能关闭在本地打开的终端窗口或断开网络连接的,甚至是网速的波动都有可能导致任务中断,此时只能重新进行远程链接并重新开始任务。还有些时候,我们正在执行文件的打包操作,同时又想用脚本来安装某个服务程序,这时会因为打包操作的输出信息占满用户的屏幕界面,而只能在打开一个执行远程会话的终端窗口,时间久了,难免会忘记这些打开的终端窗口是做什么用的了。

screen是一款实现多窗口远程控制的开源服务程序,简单来说就是为了解决网络异常中断或为了同时控制多个远程终端窗口而设计的程序。
会话恢复:即使网络中断,也可让会话随时回复,确保用户不会失去对远程会话的控制
多窗口:每个会话都是独立运行的,拥有各自独立的输入输出终端窗口,终端窗口内显示过的信息也将被分开隔离保存,以便下次使用时依然能看到之前的操作记录。
会话共享:当多个用户同时登陆到远程服务器时,便可以使用会话共享功能让用户之间的输入输出信息共享

在RHEL7中,没有默认安装screen服务程序,因此需要配置yum仓库来安装它。把光盘设备中的系统镜像挂载到/media/cdrom目录

使用SSH服务管理远程主机_远程管理_26

使用vim文本编辑器创建yum仓库的配置文件。

使用SSH服务管理远程主机_SSH服务_27

RHEL8中yum仓库配置方法

使用SSH服务管理远程主机_远程管理_28

现在就可以使用yum仓库来安装screen服务程序。

使用SSH服务管理远程主机_远程管理_29

管理远程会话

screen命令能做的事情非常多

参数含义
-S创建会话窗口
-d将指定会话进行离线处理
-r恢复指定会话
-x一次性恢复所有的会话
-ls显示当前已有的会话
-wipe把目前无法使用的会话删除

下面创建一个名称为backup的会话窗口,请各位读者留心观察,当在命令行中敲下这条命令的一瞬间,屏幕会快速闪动一下,这时就已经进入screen服务会话中了,在里面运行的任何操作都会被后台记录下来

使用SSH服务管理远程主机_远程管理_30

执行命令后会立即返回一个提示符。虽然看起来与刚才没有不同,但实际上可以查看到当前的会话在工作中。

使用SSH服务管理远程主机_SSH服务_31

要想退出会话也十分简单,只需要在命令行中执行exit命令即可。

使用SSH服务管理远程主机_SSH服务_32

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

使用SSH服务管理远程主机_SSH服务_33

为了演示screen不间断会话服务的强大之处,我们先来创建一个名为linux的会话,然后强行把窗口关闭掉

使用SSH服务管理远程主机_远程管理_34

关闭了会话窗口,这样的操作在传统的远程控制中一定会导致正在运行的命令也突然终止,但在screen不间断会话服务中则不会这样。我们只需查看一下刚刚离线的会话名称,然后尝试回来就可以继续工作了。

使用SSH服务管理远程主机_SSH服务_35
使用SSH服务管理远程主机_SSH服务_36
使用SSH服务管理远程主机_SSH服务_37

会话共享功能

screen命令不仅可以确保用户在极端情况下也不丢失对系统的远程控制,保证了生产环境中远程工作的不间断性,而且它还具有会话共享、分屏切割、会话锁定等实用的功能。其中,会话共享当多个用户同时控制主机的时候,它可以把屏幕内容共享出来,也就是说每个用户都可以看到相同的内容。
1.要实现会话共享功能,首先使用ssd服务程序将终端A远程连接到服务器,并创建一个会话窗口。

使用SSH服务管理远程主机_远程管理_38

使用SSH服务管理远程主机_SSH服务_39
使用SSH服务管理远程主机_SSH服务_40

2.然后,使用ssh服务程序将终端B远程连接到服务器,并执行获取远程会话的命令。

使用SSH服务管理远程主机_远程管理_41
使用SSH服务管理远程主机_远程管理_42