前言:
在复杂的网络运维环境中,SSH带外管理(Out-of-Band Management) 是确保系统高可用性的核心技术手段。区别于依赖业务网络的“带内管理”,带外管理通过独立物理通道(如专用管理网口或串行控制台)建立SSH连接,即使主网络故障或系统崩溃,管理员仍能安全接入设备执行紧急修复。Linux系统通过OpenSSH服务实现这一能力,结合密钥认证、端口隔离与自动化脚本,为运维人员提供了不受业务流量干扰的“最后防线” ,尤其适用于数据中心、云平台等对稳定性要求极高的场景。
目录
SSH带外管理
一、概述
二、 配置文件
三、命令解析
四、登录方式配置
1、用户名密码登录
2、公钥验证登录
四、实战
SSH带外管理
一、概述
ssh服务,一种远程管理连接工具,在CentOS7系统中默认安装并开机自启的。
SSH(Secure Shell)是一种安全通道协议,主要用来实现字符界面的远程登录,远程复制等功能。
监听tcp的22号端口。软件包名称:openssh
配置文件目录:/etc/ssh,sshd_config 服务端配置文件;ssh_config 客户端配置文件。
客户端提供:ssh、scp、sftp命令
服务端提供:sftp服务、ssh服务
二、 配置文件
服务端配置文件: sshd_config
Port 22 #监听端口AddressFamily any #ip地址版本ListenAddress 0.0.0.0 #监听地址,ipv4ListenAddress :: #监听地址,ipv6PermitRootLogin yes #是否允许root用户登录MaxAuthTries 6 #重新连接最大次数MaxSessions 10 #建立不同用户的会话的最大个数PubkeyAuthentication yes #是否启用公钥对验证登录AuthorizedKeysFile .ssh/authorized_keys #存储客户端公钥信息的文件PasswordAuthentication yes #是否启用密码验证登录PermitEmptyPasswords no #是否允许空密码登录UsePAM yes #启用系统用户及密码进行验证登录UseDNS no #是否启用ssh内部的解析,会影响连接速度
客户端配置文件: ssh_config,设置ssh命令连接的关键配置
Port 22 #设置ssh命令连接的默认端口
三、命令解析
###远程登录命令######语法:####ssh [选项] [username@]ssh服务器的监听IP地址或者主机名(使用主机名时,保证客户端能够解析主机名)####选项:######-p port 指定连接服务器的监听端口###远程拷贝命令#######语法:######将本机的文件拷贝到远程主机##scp 本机的文件路径 [username@]ssh服务器的监听IP地址或者主机名:/远程主机存储路径##将远程主机的文件拷贝到本机##scp [username@]ssh服务器的监听IP地址或者主机名:/远程主机存储路径 本机的文件路径###sftp服务登录命令###sftp [选项] [username@]ssh服务器的监听IP地址或者主机名(使用主机名时,保证客户端能够解析主机名)
四、登录方式配置
1、用户名密码登录
默认方式,直接可以使用
2、公钥验证登录
(1)密码学基础:
概念 | 解析 |
---|---|
对称加密 | 双方采用相同的秘钥,安全性较低 |
非对称加密 | 双方采用不同的秘钥,安全性较高 |
公钥 | 大家都可以知道的秘钥。 |
私钥 | 只有自己知道的秘钥。能够证明自己的身份信息 |
注意:公钥和私钥不能相互推导!!!
公钥与私钥之间能够相互解密!!!
(2)数据加密:
使用对端的公钥加密,接收端收到数据后,使用自己的私钥解密。作用是保证数据完整性。
(3)数字签名:
私用自己的私钥加密,接收端收到数据后,使用发送端的公钥解密。作用是保证发送者的身份唯一性。
(4)ssh工作原理
使用ssh命令
①用账户名和密码进行登录的方式,两个主机都连接到VMnet5
192.168.254.129主机进行对192.168.254.130主机的抓包
192.168.254.130主机ssh登录192.168.254.129主机后,进行对192.168.254.130主机的抓包
②不登陆目标主机,而是返回执行的命令结果
使用scp命令
①在192.168.254.130写一个shell脚本使用scp远程拷贝到192.168.254.129的主机上直接执行脚本
拷贝成功
在192.168.254.130主机远程执行脚本
在254.130主机修改后再拷贝到254.129主机并远程执行脚本,这样就做一个简单的信息收集
②不仅可将脚本文件远程拷贝到目标主机,也可以将脚本文件从目标主机拷贝回来
使用sftp命令
①put 上传文件(传输的是加密文件)
②get 下载rpm包
ssh客户端生成密钥对
###生成密钥对的命令###ssh-keygen ,默认是交互式###常用选项:####-t : 指定秘钥算法-N : 指定秘钥短语-f : 指定秘钥存储路径[root@s1 .ssh]# ssh-keygenGenerating public/private rsa key pair.Enter file in which to save the key (/root/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: ###非交互生成密钥对####[zhx1@s1 ~]$ ssh-keygen -t rsa -N '' -f ~/.ssh/id_rsa###默认保存到当前执行该命令的用户家目录中的.ssh目录#####[root@s1 .ssh]# lsid_rsa id_rsa.pub###id_rsa: 私钥;id_rsa.pub: 公钥######拷贝公钥命令###ssh-copy-id ###ssh命令的特殊用法:远程执行ssh服务器的指令####[root@s1 .ssh]# ssh 192.168.115.128 ip a##注意:不能执行ssh-copy-id命令####
四、实战
1.客户端使用user1用户,并且以服务端的用户user2的身份登录,使用公钥对验证登录。
(1)客户端创建user1用户,服务端创建用户user2,修改密码为1
(2)现想要让客户端user1用户以公钥对形式的形式登录到服务端并且登录时采用user1身份登录
①生成公私钥对
②将密钥对拷贝给服务端user2用户
③user2用户su - user2查看 .ssh/目录生成了一个新文件查看文件内容查看到客户端user1本地用户的主机名
④ 此时就客户端的user1账户可以直接免密登录到服务器的user2账户,完成公钥对验证登录(免密登录)
总结:
SSH带外管理在Linux网络服务中扮演着故障隔离与安全管控的双重角色,其核心价值与实现要点包括:
- 独立通道保障可用性
通过专用网络接口(如BMC/iDRAC)或串行控制台(Console)建立SSH连接,与业务网络解耦,确保主网络中断时仍能远程重启、修复或重装系统。 - 密钥认证强化安全
禁用密码登录,强制使用非对称密钥对(RSA/ECDSA)认证,配合~/.ssh/authorized_keys
的严格权限(700目录+600文件),阻断暴力破解风险。 - 自动化运维支撑
结合脚本(如takeover.sh
)实现远程系统重置或环境替换,通过SSH隧道执行高危操作(如根文件系统擦除),同时依赖物理应急方案(如带外控制台)作为操作失败的兜底策略。 - 配置优化实践
- 服务端:修改
sshd_config
(禁用PasswordAuthentication
、限制AllowUsers
、启用PubkeyAuthentication
); - 客户端:利用
~/.ssh/config
预设主机别名、端口及密钥路径,提升连接效率
- 服务端:修改