整理自刘遄老师的《Linux就该这么学》,网站链接
文章目录
9、使用ssh 服务管理远程主机
9.1 配置网络服务
1、配置网络参数
用nmtui 命令来配置网络
使用Vim编辑器修改网卡配置文件中的ONBOOT参数为yes以激活网卡
2、创建网络会话
RHEL 和CentOS 系统默认使用NetworkManager
来提供网络服务,这是一种动态管理网络配置的守护进程
,能够让网络设备保持连接状态。可以使用nmcli 命令
来管理Network Manager 服务。nmcli 是一款基于命令行的网络配置工具,功能丰富,参数众多,可轻松查看网络信息和状态。
另外,RHEL7 系统支持网络会话功能
,允许用户在多个配置文件中快速切换
(非常类似于firewalld 防火墙服务中的区域
技术)。如果我们在公司网络中使用笔记本电脑时需要手动指定网络的IP 地址,而回到家中则是使用DHCP 自动分配IP 地址。这就需要麻烦地频繁修改IP 地址,但是使用了网络会话功能后一切就简单多了—只需在不同的使用环境中激活相应的网络会话,就可以实现网络配置信息的自动切换了。
可以使用nmcli 命令并按照“connection add con-name type ifname”的格式来创建网络会话
。假设将公司网络中的网络会话称之为company,将家庭网络中的网络会话称之为house,现在依次创建各自的网络会话。
使用 con-name 参数指定公司所使用的网络会话名称company,然后依次用ifname 参数指定本机的网卡名称(千万要以实际环境为准,不要照抄书上的eno16777736),用autoconnect no 参数设置该网络会话默认不被自动激活,以及用ip4 及gw4 参数手动指定网络的IP 地址:
[root@linuxprobe ~]# nmcli connection add con-name company ifname eno16777736 autoconnect no type ethernet ip4 192.168.10.10/24 gw4 192.168.10.1
Connection 'company' (86c71220-0057-419e-b615-38f4014cfdee) successfully added.
使用 con-name 参数指定家庭所使用的网络会话名称house。因为我们想从外部DHCP 服务器自动获得IP 地址,因此这里不需要进行手动指定。
[root@linuxprobe ~]# nmcli connection add con-name house type ethernet ifname eno16777736
Connection 'house' (44acf0a7-07e2-40b4-94ba-69ea973090fb) successfully added.
在成功创建网络会话后,可以使用 nmcli 命令查看创建的所有网络会话:
[root@linuxprobe ~]# nmcli connection show
NAME UUID TYPE DEVICE
house 44acf0a7-07e2-40b4-94ba-69ea973090fb 802-3-ethernet --
company 86c71220-0057-419e-b615-38f4014cfdee 802-3-ethernet --
eno16777736 ec77579b-2ced-481f-9c09-f562b321e268 802-3-ethernet eno16777736
使用 nmcli 命令配置过的网络会话是永久生效的,这样当我们下班回家后,顺手启用house网络会话,网卡就能自动通过DHCP 获取到IP 地址了。
[root@linuxprobe ~]# nmcli connection up house
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/
ActiveConnection/2)
[root@linuxprobe ~]# ifconfig
eno1677773628: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.100.128 netmask 255.255.255.0 broadcast 192.168.100.255
inet6 fe80::20c:29ff:fec4:a409 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:c4:a4:09 txqueuelen 1000 (Ethernet)
RX packets 42 bytes 4198 (4.0 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 75 bytes 10441 (10.1 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 0 (Local Loopback)
RX packets 518 bytes 44080 (43.0 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 518 bytes 44080 (43.0 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
3、绑定两块网卡
假设我们对两块网卡实施了绑定技术,这样在正常工作中它们会共同传输数据,使得网络传输的速度变得更快;而且即使有一块网卡突然出现了故障,另外一块网卡便会立即自动顶替上去,保证数据传输不会中断。
9.2 远程控制服务
1、配置sshd服务
SSH(Secure Shell)是一种能够以安全的方式提供远程登录的协议
,也是目前远程管理Linux 系统的首选方式。在此之前,一般使用FTP 或Telnet 来进行远程登录。但是因为它们以明文的形式在网络中传输账户密码和数据信息,因此很不安全,很容易受到黑客发起的中间人攻击,这轻则篡改传输的数据信息,重则直接抓取服务器的账户密码。
想要使用 SSH 协议来远程管理Linux 系统,则需要部署配置sshd 服务程序。sshd 是基于SSH协议开发的一款远程管理服务程序,不仅使用起来方便快捷,而且能够提供两种安全验证的方法:
基于口令的验证—用账户和密码来验证登录;
基于密钥的验证—需要在本地生成密钥对,然后把密钥对中的公钥上传至服务器,并与服务器中的公钥进行比较;该方式相较来说更安全。
sshd 服务的配置信息保存在/etc/ssh/sshd_config 文件中
。配置文件中的重要参数如下:
在 RHEL 7 系统中,已经默认安装并启用了sshd 服务程序
。接下来使用ssh
命令进行远程连接,其格式为“ssh [参数] 主机IP 地址”。要退出登录则执行exit 命令。
[root@linuxprobe ~]# ssh 192.168.10.20
The authenticity of host '192.168.10.20 (192.168.10.20)' can't be established.
ECDSA key fingerprint is 4f:a7:91:9e:8d:6f:b9:48:02:32:61:95:48:ed:1e:3f.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.10.20' (ECDSA) to the list of known hosts.
root@192.168.10.20's password:此处输入远程主机root 管理员的密码
Last login: Wed Apr 15 15:54:21 2017 from 192.168.10.10
[root@linuxprobe ~]#
[root@linuxprobe ~]# exit
logout
Connection to 192.168.10.10 closed.
如果禁止以root 管理员的身份远程登录到服务器,则可以大大降低被黑客暴力破解密码的几率。首先使用Vim 文本编辑器打开sshd 服务的主配置文件,然后把第48 行#PermitRootLogin yes 参数前的井号(#)去掉,并把参数值yes 改成no,这样就不再允许root 管理员远程登录了。记得最后保存文件并退出。
再次提醒的是,一般的服务程序并不会在配置文件修改之后立即获得最新的参数。如果想让新配置文件生效,则需要手动重启相应的服务程序。最好也将这个服务程序加入到开机启动项中,这样系统在下一次启动时,该服务程序便会自动运行,继续为用户提供服务。
[root@linuxprobe ~]# systemctl restart sshd
[root@linuxprobe ~]# systemctl enable sshd
2、安全密钥验证
3、远程传输命令
scp(secure copy)是一个基于SSH 协议在网络之间进行安全传输的命令,其格式为“scp [参数] 本地文件远程帐户@远程IP 地址:远程目录”。
cp 命令只能在本地硬盘中进行文件复制,而scp 不仅能够通过网络传送数据,而且所有的数据都将进行加密处理。
还可以使用scp 命令把远程主机上的文件下载到本地主机,其命令格式为“scp [参数] 远程用户@远程IP 地址:远程文件本地目录”。
9.3 不间断会话服务
screen 是一款能够实现多窗口远程控制的开源服务程序,简单来说就是为了解决网络异常中断或为了同时控制多个远程终端窗口而设计的程序。用户还可以使用screen 服务程序同时在多个远程会话中自由切换,能够做到实现如下功能。
会话恢复:即便网络中断,也可让会话随时恢复,确保用户不会失去对远程会话的控制。
多窗口:每个会话都是独立运行的,拥有各自独立的输入输出终端窗口,终端窗口内显示过的信息也将被分开隔离保存,以便下次使用时依然能看到之前的操作记录。
会话共享:当多个用户同时登录到远程服务器时,便可以使用会话共享功能让用户之间的输入输出信息共享。