RHEL7--第九章-SSH
使用 SSH 服务管理远程主机
- 配置网卡服务
1:配置网卡参数
方法1:
nmtui 在终端打入命令,图形界面配置;

方法2:
nm-connection-editor 也是图形界面配置;

方法3:
直接图形界面,配置IP地址;
方法4:
CLI命令行进行配置地址;
# vi /etc/sysconfig/network-stricp/ifcfg-en*****
# systemctl restart network
2:创建网络会话
1)系统默认由 NetworkManager 来提供网络服务,是一种动态管理网络配置的守护进程,让网络设备保持连接状态;
2)nmcli
a:基于CLI的网络配置工具,来管理NetworkManager服务;查看网络信息状态;
# nmcli connection show
查看所有网卡信息及网络状态;
# nmcli connection show eno167777736
查看指定网卡信息
b:nmcli命令补全;
当遇到nmcli命令无法使用补全功能时,安装以下插件即可:
# yum install -y bash-completion
# reboot 重启服务器后生效
c:允许用户在多个配置文件中切换,类似于firewalld中的区域技术;
格式:nmcli connection add con-name type ifname
# nmcli connection add con-name aera1 ifname eno16777736 autoconnect no type ethernet ip4 192.168.10.10/24 gw4 192.168.10.1
# nmcli connection add con-name aera2 ifname eno16777736 type ethernet
# nmcli connection show

解析:
con-name:参数指定配置文件所使用的网络会话名称 area1;
ifname:指定本机的网卡;
autoconnect no:设置该网卡网络会话默认不自动激活;
type:配置网卡类型;
ip4及gw4:指定IPv4地址掩码及网关;
d:nmcli命令日常用法
# nmcli dev status
查看系统现有网络设备的链接状态;
# nmcli connection show
查看已有链接状态;
# nmcli connection delete 网卡名
删除指定网络连接;
# nmcli dev connect 网卡名
连接网卡设备,类似于插上网线;
# nmcli dev disconnect 网卡名
断开指定网卡设备,拔网线;
# nmcli connection down 网卡名
关闭指定网卡,等同于 ifdown 网卡名;
# nmcli connection up 网卡名
开启指定网卡连接,等同于 ifup 网卡名;
# nmcli dev show
查看设备详细信息;
3:绑定两块网卡
网卡的冗余,一块网卡故障,另外一块自动启用,保证网络不中断;
常见的网卡绑定驱动三种模式:
mode0:平衡负载模式,两块网卡均工作,且自动备援,需要与服务器本地网卡相连的交换机设备上进行端口聚合来支持绑定技术;
mode1:自动备援模式,只有一块网卡工作,故障后自动替换至另一块网卡;
mode6:平衡负载模式,两块网卡均工作,且自动备援,无需交换机设备辅助支持;
例:
1:虚拟机两块虚拟网卡处于同一模式,仅主机;
2:vi 改两块网卡配置如下:
4:网卡的链路聚合
将多块网卡链接起来,当一块网卡损坏,网络依旧正常运行,提高网络访问速度;
网卡聚合的效果类型:
1:broadcast 传输来自所有端口的每个包;
2:roundrobin 以轮播方式传播来自每个端口的包;
3:active-backup 故障转移运行程序,监视更改并选择活动端口进行数据传输;
4:loadbalance 监控流量并使用哈希函数以尝试在为包传输选择端口时达到完美均衡;
5:lacp 实施 802.3ad 链路聚合控制协议;
链路聚合的两种模式:
1:bond 最多可以添加两块网卡
例:
选择 bond模式配置聚合链路;
1:准备两块网卡,添加一个 bond,名称为 bond0,工作模式为主备(active-backup)IP为 10.1.1.50/24
# nmcli connection add type bond autoconnect yes con-name bond0 mode active-backup ip4 10.1.1.50/24
# cat /proc/net/bonding/nm-bond 查看bond信息;
2:将两块网卡设置网络回话名称并做为bond0的从网卡模式bond-slave加入;
# nmcli connection add con-name eno0 ifname eno33554976 type bond-slave master bond0
# nmcli connection add con-name eno1 ifname eno50332200 type bond-slave master bond0
3:手动启用eno0,eno1
# nmcli connection up eno0
# nmcli connection up eno1
4:查看连接状态;
# nmcli connection show
# nmcli dev status
5:重启网络服务后,再次查看设备状态,ping10.1.1.50查看;
# systemctl restart network
# nmcli dev status

6:由于实体网卡与虚拟网卡不一样,虚拟机上需要再添加一步才能达到实验效果;
在 bond0 配置表中添加一行参数:
BONDING_OPTS="fail_over_mac=1"
# vi /etc/sysconfig/network-stript/ifcfg-bond0
# systemctl restart network

备注:
默认fail_over_mac=0,发生故障时,只改 slave的 mac不改bond;设置成fail_over_mac=1,只改bond的mac,不改slave的;
7:测试结果
# ifdown eno0
模拟 eno0故障损坏,看 ping的状态是否正常;
2:team 最多可添加8块网卡,熟悉图形配置,考
例:
1:配置工作模式为主备,IP为10.1.1.50/24
# nmcli connection add type team con-name team0 ifname team0 config '{"runner":{"name":"activebackup"}}' ip4 10.1.1.50/24
2:查看team0信息;
# teamdctl team0 state
3:将两块网卡加入到team0中,做从网卡;
# nmcli connection add con-name eno0 ifname eno33554976 type team-slave master team0
# nmcli connection add con-name eno1 ifname eno50332200 type team-slave master team0
4:测试效果
# ifdown eno0
备注:
team模式下设置聚合模式时的格式:
{"runner":{"name":"工作模式"}}
- 远程控制服务SSH
1:配置sshd服务
SSH一种以安全的方式提供远程登录的协议,目前远程管理的首选方式;
要使用SSH协议远程管理Linux系统,需要部署sshd服务程序,方便安全;
基于口令的验证:用账户和密码来验证登录;
基于密钥的验证:需要在本地生成密钥对,然后把密钥对中的公钥上传至服务器,并与服务器中的公钥进行比较,该方式相较更安全;
sshd配置文件
/etc/ssh/sshd_config

例:
把 PermitRootLogin 注释#删除,yes 改为 no;
表示 不允许 root用户通过ssh协议登录;
备注:
在修改完配置文件后,需要重启 sshd 服务,并且设置 sshd开机自启;
# systemctl restart sshd
# systemctl enable sshd
2:安全密钥验证
通过一定的算法将原本可以直接阅读的明文信息转换成密文形式;
密钥即是密文的钥匙,有私钥和公钥之分;
相关命令:
ssh-keygen 生成公钥与私钥对;
ssh-copy-id 将公钥填充至远程主机上的./.ssh/authorized_keys文件内容中;
例:
正确配置密码验证方式,使得 sshd服务更安全;
1:在客户端 host1主机生产 “密钥对”;
# ssh-keygen
2:把客户端 host1主机中生成的公钥文件传送至远程主机host2;
# ssh-copy-id -i ./ssh/id_rsa.pub root@192.168.10.10
备注:ssh-copy-id 将id_rsa.pub内容写入到host2上的 ./ssh/authorized_key文件中;
3:对远程主机host2进行设置,使其只允许密钥验证,拒绝传统口令验证;
# vim /etc/ssh/sshd_config
78 PasswordAuthentication no 免密码登录;
# systemctl restart sshd
3:远程传输命令
scp(secure copy)基于SSH协议在网络之间进行安全传输的命令
格式:scp [参数] 本地文件 远程账户@远程IP地址:远程目录;
格式:scp [参数] 远程用户@远程IP地址:远程文件 本地目录;
参数:
-v:显示详细的连接进度;
-P:指定远程主机的 sshd端口号;
-r:用于传送文件夹;
-6:使用 IPv6协议;
例:
1:把host1上的test.txt文档传送到192.168.10.20的home目录下;
[root@host1~]# scp /root/test.txt root@192.168.10.20:/home
192.168.10.20 主机为 host2;
2:把远程主机文件下载到本地主机;
[root@host1~]# scp root@192.168.10.20:/etc/passwd /root
- 不间断会话服务
当与远程主机的会话被关闭时,在远程主机上运行的命令也随之被中断;
screen
是一款实现多窗口远程控制的开源服务程序,解决网络异常中断或同时控制多个远程终端窗口而设计的程序;
功能:
1:会话恢复
即是网络中断,可让会话随时恢复,确保不是去对远程会话控制
2:多窗口
每个会话都是独立的,拥有各自独立的输入输出终端窗口,窗口内显示过的信息也将被分开隔离保存,以便下次使用依然能看到之前的操作记录;
3:会话共享
当多个用户同时登录到远程服务器时,便可以使用会话共享功能让用户之间的输入输出信息共享;
1:管理远程会话
参数:
-S:创建会话窗口;
-d:将指定会话进行离线处理;
-r:恢复指定的会话;
-x:一次性恢复所有的会话;
-ls:显示当前已有的会话;
-wipe:把目前无法使用的会话删除;
例1:
创建名为:abc的会话窗口;
# screen -S abc
显示当前已有的会话;
# screen -ls
退出一个会话;
# exit
screen 执行要运行的命令,在命令中的一切操作也被记录下来,命令执行结束后,screen自动结束;
# screen vim /tmp/test.txt
例2:
测试 screen不间断会话服务 ;
建立会话 linux 并用 cat 写入内容到test.txt;
# screen -S linux
# cat <<EOF > /tmp/test.txt

不退出 cat输入界面,直接把 xshell窗口断开,再次登录并回复之前 linux会话,看是否还在 cat输入界面;
# screen -r linux
恢复 linux会话窗口后,screen的不间断功能体现;

2:会话共享功能
当多个用户同时控制主机的时候,它可以把屏幕内容共享出来,每个用户都可以看到相同的内容;
拓扑图:

由主机A 创建会话 linux
[root@ A ~]# screen -S linux
# cat << EOF > /tmp/test.txt
输入任何信息,但不退出 cat;
主机B 使用相同账号 root 登录服务器,恢复 linux会话;
即实现会话共享功能;
[root@ B ~]# screen -x
备注:会话共享的实现,必须是使用相同的账号,切记;
浙公网安备 33010602011771号