ssh服务管理远程主机
创建网络会话
查看网络信息或者网络状态
例:
在公司网络设置指定的 IP 地址,在家使用 DHCP 自动分配 IP 地址。只需在不同的使用环境中激活相应的网络会话,就可以实现网络配置信息的自动切换。
使用 nmcli 命令并按照 “connection add con-name type ifname” 的格式来创建网络会话。使用 con-name 参数指定所使用的网络会话名称,用 ifname 参数指定本机的网卡名称。用 autoconnect no 参数设置该网络会话默认不被自动激活,以及用 ip4 及 gw4(网关)参数手动指定网络的 IP 地址
网络会话创建成功后,可以使用nmcli 命令查看创建的所有网络会话(配置的网络会话是永久生效的)。(使用虚拟机的话,记得把虚拟机的网卡切换成桥接模式,然后重启虚拟机系统)
双网卡绑定技术(bonding)
借助网卡绑定技术,不仅可以提高网络传输速度,还可以确保在其中一块网卡出现故障时,依然可以正常提供网络服务。
假设我们对两块网卡实施了绑定技术,这样在正常工作中它们会共同传输数据,使得网络传输的速度变得更快;而且即使有一块网卡突然出现故障,另外一块网卡便会立即自动顶替上去,保证数据传输不会断。
- 在虚拟机系统再添加一块网卡设备,确保两块网卡都处在同一个网络连接中(即网卡模式相同),处于相同模式的网卡设备才可以进行网卡绑定,否则这两块网卡无法相互传送数据。(两个都是仅主机模式)
- 使用 Vim 文本编辑器来配置网卡设备的绑定参数。我们需要对参与绑定的网卡设备逐个进行 “ 初始设置 ” 。需要注意的是,这些原来独立的网卡设备此时需要被配置成一块 “从属” 网卡,服务于 “主” 网卡,不应该再有自己的 IP 地址等信息。在进行了初始化设置之后,它们就可以支持网卡绑定。
还需要将绑定后的设备命名为 bond0 并把 IP 地址等信息填写进去,这样当用户访问相应服务的时候,实际上就是由这两块网卡设备在共同提供服务。
- 让Linux 内核支持网卡绑定驱动。常见的网卡绑定驱动有三种模式——mode0、mode1、mode6。
- mode0(平衡负载模式):平时两块网卡均工作,且自动备援,但需要在与服务器本地网卡相连的交换机设备上进行端口聚合来支持绑定技术。
- mode1(自动备援模式):平时只有一块网卡工作,在它故障后自动替换为另外的网卡。
- mode6(平衡负载模式):平时两块网卡均工作,且自动备援,无须交换机设备提供辅助支持
以下是创建一个用于网卡绑定的驱动文件,使得绑定后的 bond0 网卡设备能够支持绑定技术 (bonding);同时定义网卡以 mode6 模式进行绑定,且出现故障时自动切换的时间为 100 毫秒。
- 重启网络服务后网卡绑定操作即可成功。正常情况下只有 bond0 网卡设备才会有 IP 地址等信息。
可以在主机执行 ping 192.168.10.10 命令检查网络的连通性。为了检验网卡绑定技术的自动备援功能,我们突然在虚拟机硬件配置中随机移除一块网卡设备,可以非常清晰地看到网卡切换的过程(一般只有 1 个数据丢包)。然后另外一块网卡会继续为用户提供服务。
配置sshd 服务
sshd服务程序提供两种安全验证的方法
- 基于口令的验证——用账户和密码来验证登录
- 基于密钥的验证——需要在本地生成密钥对,然后把密钥对中的公钥上传至服务器,并与服务器中的公钥进行比较;改方式相对来说更安全
参数 | 作用 |
---|---|
Port 22 | 默认的 sshd 服务端口 |
ListenAddress 0.0.0.0 | 设定 sshd 服务器监听的 IP 地址 |
Protocol 2 | SSH 协议的版本号 |
HostKey /etc/ssh/ssh_host_key | SSH 协议版本为 1 时,DES 私钥存放的位置 |
HostKey /etc/ssh/ssh_host_rsa_key | SSH 协议版本为 2 时,RSA 私钥存放的位置 |
HostKey /etc/ssh/ssh_host_dsa_key | SSH 协议版本为 3 时,DSA 私钥存放的位置 |
PermitRootLogin yes | 设定是否允许 root 管理员直接登录 |
StrictModes yes | 当远程用户的私钥改变时直接拒绝连接 |
MaxAuthTries 6 | 最大密码尝试次数 |
MaxSesion 10 | 最大终端数 |
PasswordAuthentication yes | 是否允许密码验证 |
PermitEmptyPasswords no | 是否允许口感密码登录(很不安全) |
例:如果禁止以 root 管理员的身份远程登录到服务器,则可以大大降低被黑客暴力破解密码的几率。
首先使用 Vim 打开 sshd 服务的主配置文件,然后把第48行 #PermitRootLogin yes 参数前面的井号(#)去掉,并把参数值 yes 改成 no,这样就不在允许 root 管理员远程登录了。
提醒一下,一般的服务程序并不会再配置文件修改之后立即获得最新的参数。应该重启一下相应的服务程序,最好将这个服务程序加入到开机启动项中。
当 root 管理员再来尝试访问 sshd 服务程序时,系统会提示不可访问的错误信息。
安全密钥验证
-
在客户端主机中生成 “密钥对”(都直接按回车跳过就行)
第一个输入的是:设置密钥的存储位置
第二个输入的是:设置密钥的密码
第三个输入的是:设置密码的密码(与上面的相同)
-
把客户端主机中生成的公钥文件传送至远程主机(输入服务器密码)
-
对服务器进行设置,使其只允许密钥验证,拒绝传统的扣了验证方式。记得在修改配置文件后保存并重启 sshd 服务程序。
- 在客户端尝试登录到服务器,此时无须输入密码也可以成功登录。
远程传输命令
scp [参数] 本地文件 远程帐号@远程IP地址:远程目录
scp 是一个基于 SSH 协议在网络之间进行安全传输的命令
上传:scp 文件名 IP地址:路径
下载:scp IP地址:文件名 路径
参数 | 作用 |
---|---|
-v | 显示详细的连接进度 |
-P | 指定远程主机的 sshd 端口号 |
-r | 用于传送文件夹 |
-6 | 使用 IPv6 协议 |
在使用 scp 命令把文件从本地复制到远程主机时,首先需要以绝对路径的形式写清本地文件的存放位置。如果要传送整个文件夹的所有数据,就要添加参数 -r 进行递归操作。然后写上要传送的远程主机的 IP 地址,远程服务器便会要求进行身份验证了。当前用户名称为 root,而密码则为远程服务器的密码。如果想使用指定用户的身份验证,可使用用户名@主机地址的参数格式。最后需要在远程主机的 IP 地址后面添加冒号,并在后面写上要传送到远程主机的哪个文件夹中。只要参数正确并且成功验证了用户身份,即可开始传送工作。
上传
[root@linuxprobe ~]#echo “111111” > 1.txt
[root@linuxprobe ~]#scp /root/1.txt 192.168.10.10:/home
root@192.168.10.10's password:
1.txt
下载
[root@linuxprobe ~]#scp 192.168.10.10:/etc/reahat-release /root
root@192.168.10.10's password:
reahat-release
[root@linuxprobe ~]#cat redhat-release
Red Hat Enterprise Linux Server release 7.0 (Maipo)
不间断会话服务
挂载光盘
配置 Yum 仓库
使用 Yum 仓库安装 screen 服务程序。
管理远程会话
screen 命令
参数 | 作用 |
---|---|
-S | 创建会话窗口 |
-d | 将指定会话进行离线处理 |
-r | 恢复指定会话 |
-x | 一次性恢复所有的会话 |
-ls | 显示当前已有的会话 |
-wipe | 把目前无法使用的会话删除 |
创建一个名为 linux 的会话
[root@linuxprobe ~]# screen -S linux
用 -d 参数模拟掉线,然后用 -ls 参数查看会话
-r 参赛恢复会话,就能恢复到掉线前的状态
[root@linuxprobe ~]# screen -r linux
在日常生产环境中,其实并不是必须先创建会话,然后再开始工作。可以直接使用 screen 命令执行要运行的命令,这样在命令中的一切操作也都会被记录下来,当命令执行结束后 screen 会话也会自动结束。
[root@linuxprobe ~]# screen vim demo.txt