H3C V7 版本,配置完SSH后发现无法登录,提示用户名不存在
已有配置如下:

ssh server enable
public-key local create rsa
ssh user admin service-type stelnet authentication-type password
quit 
local-user admin class manage
 password simple xxxxxxx
 service-type ssh 
 authorization-attribute user-role network-admin

交换机配置了Radius认证:
当802.1X采用远程RADIUS服务器认证时,H3C V7交换机需要明确划分不同认证方法的适用范围,关键在于 RADIUS方案的创建ISP域的精准调用


🔄 与本地认证的配置差异对比

配置环节 本地认证 RADIUS远程认证
802.1X用户存储 交换机本地local-user RADIUS服务器(如IMC、ISE)
RADIUS方案 无需创建 必须创建,指定服务器地址、端口、密钥
ISP域认证方法 authentication lan-access local authentication lan-access radius-scheme <方案名>
SSH认证方法 authentication login local authentication login local保持不变

简单来说,就是要新配一个RADIUS方案,然后在ISP域里"告诉"交换机:802.1X用户去找RADIUS,SSH登录还请继续看本地


一、创建 RADIUS 方案(核心第一步)

RADIUS方案定义了交换机如何与远程RADIUS服务器通信。创建思路如下:

  • 指定RADIUS服务器的认证端口(通常为UDP 1812)和计费端口(UDP 1813)。
  • 配置与RADIUS服务器一致的共享密钥,这是双方信任的基础。
  • (可选)根据需求配置用户名格式(是否携带域名)、NAS-IP等参数。

完整配置示例(假设RADIUS服务器IP为 192.168.1.12,密钥为 h3c):

[Switch] radius scheme rad
[Switch-radius-rad] server-type extended  # 使用扩展类型,可配合IMC等使用更多特性
[Switch-radius-rad] primary authentication 192.168.1.12 1812
[Switch-radius-rad] primary accounting 192.168.1.12 1813
[Switch-radius-rad] key authentication simple h3c
[Switch-radius-rad] key accounting simple h3c  # 认证和计费的共享密钥必须一致
[Switch-radius-rad] user-name-format without-domain  # 发往RADIUS的用户名不携带域信息
[Switch-radius-rad] quit

💡 关键点server-type extended 是在与H3C IMC等服务器配合时的推荐选项,可发挥更多扩展功能。user-name-format without-domain 确保RADIUS服务器收到的用户名是"纯"用户名,没有"@domain"的后缀。


二、在 ISP 域中配置分离的认证策略(核心第二步)

ISP域是实现"各走各路"的关键配置场所。我们需在域视图下明确指定802.1X(lan-access) 走RADIUS,而SSH(login) 走本地。

完整配置示例(假设域名为 system):

[Switch] domain system
[Switch-isp-system] authentication lan-access radius-scheme rad  # 802.1X认证:指向RADIUS
[Switch-isp-system] authorization lan-access radius-scheme rad  # 802.1X授权:同样指向RADIUS
[Switch-isp-system] accounting lan-access radius-scheme rad    # 802.1X计费:若有需要
[Switch-isp-system] authentication login local                # SSH登录:仍然使用本地认证
[Switch-isp-system] quit
[Switch]  domain default enable rad #设置默认认证域

💡 关键点:第2行和第5行的配置就是实现功能分离的精髓。

  • 802.1X(lan-access):认证、授权、计费全部导向刚创建好的RADIUS方案 rad
  • SSH登录(login):保持 local 本地认证,让交换机只认本地创建的 admin 账号。

三、SSH 本地认证的配套准备(保持不变)

为确保SSH能正确使用本地账号,之前的SSH本地认证配置全部保留,无需改动

前置检查项摘要

# 1. 检查VTY线路认证模式
[Switch] user-interface vty 0 4
[Switch-ui-vty0-4] authentication-mode scheme  # 确保为 scheme(AAA)模式
[Switch-ui-vty0-4] protocol inbound ssh        # 仅允许SSH登录
[Switch-ui-vty0-4] quit

# 2. 检查SSH管理用户的 service-type
[Switch] local-user admin class manage
[Switch-luser-manage-admin] service-type ssh   # 确保包含 ssh 类型
[Switch-luser-manage-admin] authorization-attribute user-role network-admin

⚠️ 安全提醒:为了更高的安全性,建议使用 password hash 设置用户密码,或在全局开启 password-control 功能以要求密码复杂度。


🛡️ 配置备用认证(优化方案)

当RADIUS服务器不可达时,可以配置本地认证作为备选,避免802.1X用户无法上网。具体配置步骤如下:

  1. 检查dot1x认证方式:确保全局的802.1X认证方法为 eap,这是远程RADIUS认证的常见要求:

    [Switch] dot1x authentication-method eap
    
  2. 配置ISP域备用认证:在ISP域视图下,为 lan-access 指定备用认证方法:

    [Switch] domain system
    [Switch-isp-system] authentication lan-access radius-scheme rad local
    [Switch-isp-system] authorization lan-access radius-scheme rad local
    # 计费一般不做备选,以免产生不必要的计费记录
    
  3. 检查802.1X协议版本:建议使用 dot1x version 2 或更高版本以获得更好的兼容性:

    [Switch] dot1x version 2
    

💡 解释:配置 local 作为备选后,当RADIUS服务器无响应时,交换机会自动转而使用本地创建的 local-user 账户进行认证,作为保底方案。


📌 注意事项

  1. 认证方法差异dot1x authentication-method 是全局配置,需根据客户端支持的EAP方法选择 eapchappap
  2. 端口与网络:确保交换机与RADIUS服务器之间UDP 1812(认证)和 1813(计费)端口畅通。
  3. 密钥一致性:RADIUS方案中的共享密钥必须与RADIUS服务器侧配置的密钥完全一致

✅ 配置验收

完成所有配置后,建议按以下顺序验证:

1. 检查 RADIUS 方案

[Switch] display radius scheme rad

查看服务器IP、端口、密钥状态是否与预期一致。

2. 检查 ISP 域配置

[Switch] display domain system

重点确认以下两项:

  • lan-access 的认证和授权方法是否指向 radius-scheme rad
  • login 的认证方法是否为 local

3. 检查 802.1X 全局状态

[Switch] display dot1x

确认802.1X已全局开启,认证方法正确(如 eap),并在目标接口(如 GE1/0/1)上已激活。

4. 检查本地用户

[Switch] display local-user

确认 admin 用户的 service-type 包含 ssh,并且用户状态为 active

快速排障:如果SSH登录失败,请逐一检查VTY线路的认证模式是否为 scheme、SSH用户的服务类型是否包含 ssh、以及ISP域下 authentication login 是否配置为 local


Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐