华为交换机配置SSH用户

发布时间 2023-11-08 00:50:13作者: Sawyerhan

SSH用户用于STelnet登录,在配置VTY用户界面的认证方式为AAA基础上,还需要配置SSH用户的认证方式。

背景信息

SSH用户支持Password、RSA、DSA、ECC、Password-RSA、Password-DSA、Password-ECC和ALL,8种认证方式。

  • Password认证:是一种基于“用户名+口令”的认证方式。通过AAA为每个SSH用户配置相应的密码,在通过SSH登录时,输入正确的用户名和密码就可以实现登录。
  • RSA(Revest-Shamir-Adleman Algorithm)认证:是一种基于客户端私钥的认证方式。RSA是一种公开密钥加密体系,基于非对称加密算法。RSA密钥也是由公钥和私钥两部分组成,在配置时需要将客户端生成的RSA密钥中的公钥部分拷贝输入至服务器中,服务器用此公钥对数据进行加密。
  • DSA(Digital Signature Algorithm)认证:是一种类似于RSA的认证方式,DSA认证采用数字签名算法进行加密。
  • ECC(Elliptic Curves Cryptography)认证:是一种椭圆曲线算法,与RSA相比,在相同安全性能下密钥长度短、计算量小、处理速度快、存储空间小、带宽要求低。
  • Password-RSA认证:SSH服务器对登录的用户同时进行密码认证和RSA认证,只有当两者同时满足情况下,才能认证通过。
  • Password-DSA认证:SSH服务器对登录的用户同时进行密码认证和DSA认证,只有当两者同时满足情况下,才能认证通过。
  • Password-ECC认证:SSH服务器对登录的用户同时进行密码认证和ECC认证,只有当两者同时满足情况下,才能认证通过。
  • ALL认证:SSH服务器对登录的用户进行公钥认证或密码认证,只要满足其中任何一个,就能认证通过。

操作步骤

  1. 执行命令system-view,进入系统视图。
  2. 执行命令ssh useruser-name,创建SSH用户。

执行命令ssh useruser-nameauthentication-type { password | rsa | password-rsa | dsa | password-dsa | ecc | password-ecc | all },配置SSH用户的认证方式。

 缺省情况下,SSH用户不支持任何认证方式。

  • 如果接入用户选择的认证方式为Password认证,则用户优先级为AAA中设置的用户优先级。
  • 如果接入用户选择的认证方式为RSA、DSA或ECC认证,则用户的优先级由用户接入时所采用的VTY界面的优先级决定。
  • 如果SSH用户认证方式为all认证,且存在一个同名AAA用户,那通过Password、RSA、DSA或ECC认证接入时用户优先级可能不同,请根据需要进行部署。
  • 可以使用ssh authentication-type default password命令配置SSH用户缺省的认证方式为Password方式。当配置多个SSH用户使用Password认证方式时,可以不用再对每个SSH用户重复配置认证方式,从而简化配置,提高配置效率。

  • 当用户使用Password认证方式时,需要在AAA视图下配置与SSH用户同名的本地用户。
    1. 执行命令aaa,进入AAA视图。
    2. 执行命令local-useruser-namepassword { cipher | irreversible-cipher } password,创建与SSH用户同名的本地用户,并配置对应的登录密码。
    3. 执行命令local-useruser-nameservice-type ssh,配置本地用户的服务方式。
    4. 执行命令local-useruser-nameprivilege levellevel,配置本地用户级别。
    5. 执行命令quit,回到系统视图。
  • 当用户使用RSA、DSA或ECC认证方式时,需要在SSH服务器上输入SSH客户端生成的密钥中的公钥部分。这样当客户端登录服务器时,自己的私钥如果与输入的公钥匹配成功,则认证通过。
    1. 执行命令rsa peer-public-key key-name [ encoding-type { der | openssh | pem } ]、dsa peer-public-key key-name encoding-type { der | openssh | pem }或ecc peer-public-key key-name encoding-type { der | openssh | pem },进入RSA、DSA或ECC公共密钥视图。
    2. 执行命令public-key-code begin,进入公共密钥编辑视图。

    3. 输入客户端密钥的公钥部分。

      输入的公钥必须是按公钥格式编码的十六进制字符串,由支持SSH的客户端软件生成。具体操作请参见相应的SSH客户端软件的帮助文档。

    4. 执行命令public-key-code end,退出公共密钥编辑视图。

    5. 执行命令peer-public-key end,退出公共密钥视图,回到系统视图。
    6. 执行命令ssh user user-name assign { rsa-key | dsa-key | ecc-key } key-name,为SSH用户分配RSA、DSA或ECC公钥。当客户端登录服务器时,按提示输入与自己公钥对应的SSH用户名。
  • 当用户使用Password-RSA认证、Password-DSA认证或Password-ECC认证时,需同时配置AAA用户信息和输入客户端公钥,即以上两部分操作都需要进行。
  • 当用户使用ALL认证时,对于配置AAA用户信息和输入客户端公钥,可以随意选择其中一种,也可以两种方式都选择。

执行ssh useruser-nameservice-type { stelnet | all },配置SSH用户的服务方式。

缺省情况下,SSH用户的服务方式是空,即不支持任何服务方式。

 

system-view
ssh user admin
ssh user admin authentication-type password(缺省情况下,SSH用户不支持任何认证方式)

aaa
local-user admin password cipher 12345678
local-user admin service-type ssh
local-user admin privilege level 15

ssh user user-name service-type  all (缺省情况下,SSH用户的服务方式是空,即不支持任何服务方式)