• 产品与解决方案
  • 行业解决方案
  • 服务
  • 支持
  • 合作伙伴
  • 新华三人才研学中心
  • 关于我们

16-安全配置指导

目录

08-SSH配置

本章节下载 08-SSH配置  (842.77 KB)

08-SSH配置

  录

1 SSH

1.1 SSH简介

1.1.1 设备支持的SSH应用

1.1.2 SSH工作过程

1.1.3 SSH认证方式

1.1.4 SSH支持Suite B

1.2 配置SSH服务器

1.2.1 SSH服务器配置任务简介

1.2.2 生成本地密钥对

1.2.3 配置SSH服务端口号

1.2.4 开启Stelnet服务器功能

1.2.5 开启SFTP服务器功能

1.2.6 开启SCP服务器功能

1.2.7 开启NETCONF over SSH服务器功能

1.2.8 配置SSH客户端登录时使用的用户线

1.2.9 配置客户端的公钥

1.2.10 配置SSH用户

1.2.11 配置SSH管理功能

1.2.12 配置SSH服务器所属的PKI域

1.3 配置Stelnet客户端

1.3.1 Stelnet客户端配置任务简介

1.3.2 生成本地密钥对

1.3.3 配置Stelnet客户端发送SSH报文使用的源IP地址

1.3.4 建立与Stelnet服务器的连接

1.3.5 与远程的Stelnet服务器建立基于Suite B算法集的连接

1.4 配置SFTP客户端

1.4.1 SFTP客户端配置任务简介

1.4.2 生成本地密钥对

1.4.3 配置SFTP客户端发送SFTP报文使用的源IP地址

1.4.4 建立与SFTP服务器的连接

1.4.5 与远程的SFTP服务器建立基于Suite B算法集的连接

1.4.6 SFTP目录操作

1.4.7 SFTP文件操作

1.4.8 显示帮助信息

1.4.9 终止与SFTP服务器的连接

1.5 配置SCP客户端

1.5.1 SCP客户端配置任务简介

1.5.2 生成本地密钥对

1.5.3 与远程SCP服务器传输文件

1.5.4 与远程的SCP服务器建立基于Suite B算法集的连接

1.6 配置SSH2协议算法集

1.6.1 SSH协议算法集简介

1.6.2 配置SSH2协议密钥交换算法优先列表

1.6.3 配置SSH2协议主机签名算法优先列表

1.6.4 配置SSH2协议加密算法优先列表

1.6.5 配置SSH2协议MAC算法优先列表

1.7 SSH显示和维护

1.8 Stelnet典型配置举例

1.8.1 设备作为Stelnet服务器配置举例(password认证)

1.8.2 设备作为Stelnet服务器配置举例(publickey认证)

1.8.3 设备作为Stelnet客户端配置举例(password认证)

1.8.4 设备作为Stelnet客户端配置举例(publickey认证)

1.9 SFTP典型配置举例

1.9.1 设备作为SFTP服务器配置举例(password认证)

1.9.2 设备作为SFTP客户端配置举例(publickey认证)

1.10 SCP典型配置举例

1.10.1 SCP文件传输配置举例(password认证)

1.11 NETCONF over SSH典型配置举例

1.11.1 NETCONF over SSH配置举例(password认证)

 


1 SSH

1.1  SSH简介

SSH是Secure Shell(安全外壳)的简称,是一种在不安全的网络环境中,通过加密机制和认证机制,实现安全的远程访问以及文件传输等业务的网络安全协议。

SSH协议采用了典型的客户端/服务器模式,并基于TCP协议协商建立用于保护数据传输的会话通道。SSH协议有两个版本,SSH1.x和SSH2.0(本文简称SSH1和SSH2),两者互不兼容。SSH2在性能和安全性方面比SSH1有所提高。

1.1.1  设备支持的SSH应用

设备既可以支持SSH服务器功能,接受多个SSH客户端的连接,也可以支持SSH客户端功能,允许用户通过设备与远程SSH服务器建立SSH连接。

目前,设备支持以下几种SSH应用。

·     Secure Telnet:简称Stelnet,可提供安全可靠的网络终端访问服务,使得用户可以安全登录到远程设备,且能保护远程设备不受诸如IP地址欺诈、明文密码截取等攻击。设备可支持Stelnet服务器、Stelnet客户端功能。

·     Secure FTP:简称SFTP,基于SSH2,可提供安全可靠的网络文件传输服务,使得用户可以安全登录到远程设备上进行文件管理操作,且能保证文件传输的安全性。设备可支持SFTP服务器、SFTP客户端功能。

·     Secure Copy:简称SCP,基于SSH2,可提供安全的文件复制功能。设备可支持SCP服务器、SCP客户端功能。

·     NETCONF over SSH:基于SSH2,提供通过SSH连接给设备下发NETCONF指令的功能,使得用户可以安全登录到远程设备并直接进入到设备的NETCONF系统中进行配置和管理操作。设备仅支持作为NETCONF over SSH连接的服务器端。关于NETCONF系统的详细介绍,请参见“网络管理和监控配置指导”中的“NETCONF”。

目前,设备作为Stelnet服务器、SFTP服务器、SCP服务器时,支持SSH2和SSH1两个版本;设备作为SSH客户端时,只支持SSH2版本;设备作为NETCONF over SSH服务器端时,只支持SSH2版本。

1.1.2  SSH工作过程

本小节以SSH2为例介绍SSH工作的过程,具体分为表1-1所述的几个阶段。

表1-1 SSH工作过程

阶段

说明

连接建立

SSH服务器在22号端口侦听客户端的连接请求,在客户端向服务器端发起连接请求后,双方建立一个TCP连接

版本协商

双方通过版本协商确定最终使用的SSH版本号

算法协商

SSH支持多种算法,双方根据本端和对端支持的算法,协商出最终用于产生会话密钥的密钥交换算法、用于数据信息加密的加密算法、用于进行数字签名和认证的公钥算法,以及用于数据完整性保护的HMAC算法

密钥交换

双方通过DH(Diffie-Hellman Exchange)交换,动态地生成用于保护数据传输的会话密钥和用来标识该SSH连接的会话ID,并完成客户端对服务器端的身份认证

用户认证

SSH客户端向服务器端发起认证请求,服务器端对客户端进行认证

会话请求

认证通过后,SSH客户端向服务器端发送会话请求,请求服务器提供某种类型的服务(目前支持Stelnet、SFTP、SCP、NETCONF),即请求与服务器建立相应的会话

会话交互

会话建立后,SSH服务器端和客户端在该会话上进行数据信息的交互

该阶段,用户在客户端可以通过粘贴文本内容的方式执行命令,但文本会话不能超过2000字节,且粘贴的命令最好是同一视图下的命令,否则服务器可能无法正确执行该命令。如果粘贴的文本会话超过2000字节,可以采用将配置文件通过SFTP方式上传到服务器,利用新的配置文件重新启动的方式执行这些命令

 

1.1.3  SSH认证方式

设备作为SSH服务器可提供以下四种对客户端的认证方式。

1. password认证

利用AAA(Authentication、Authorization、Accounting,认证、授权和计费)对客户端身份进行认证。客户端向服务器发出password认证请求,将用户名和密码加密后发送给服务器;服务器将认证请求解密后得到用户名和密码的明文,通过本地认证或远程认证验证用户名和密码的合法性,并返回认证成功或失败的消息。

客户端进行password认证时,如果远程认证服务器要求用户进行二次密码认证,则会在发送给服务器端的认证回应消息中携带一个提示信息,该提示信息被服务器端透传给客户端,由客户端输出并要求用户再次输入一个指定类型的密码,当用户提交正确的密码并成功通过认证服务器的验证后,服务器端才会返回认证成功的消息。

SSH1版本的SSH客户端不支持AAA服务器发起的二次密码认证。

关于AAA相关内容的介绍,请参考“用户接入与认证配置指导”中的“AAA”。

2. publickey认证

采用数字签名的方式来认证客户端。目前,设备上可以利用DSA、ECDSA、RSA三种公钥算法实现数字签名。客户端发送包含用户名、公钥和公钥算法或者携带公钥信息的数字证书的publickey认证请求给服务器端。服务器对公钥进行合法性检查,如果合法,则发送消息请求客户端的数字签名;如果不合法,则直接发送失败消息;服务器收到客户端的数字签名之后,使用客户端的公钥对其进行解密,并根据计算结果返回认证成功或失败的消息。

关于公钥相关内容的介绍,请参考“安全配置指导”中的“公钥管理”。

3. password-publickey认证

对于SSH2版本的客户端,要求同时进行password和publickey两种方式的认证,且只有两种认证均通过的情况下,才认为客户端身份认证通过;对于SSH1版本的客户端,只要通过其中任意一种认证即可。

4. any认证

不指定客户端的认证方式,客户端可采用password认证或publickey认证,且只要通过其中任何一种认证即可。

1.1.4  SSH支持Suite B

Suite B算法集是一种通用的加密和认证算法集,可满足高级别的安全标准要求。RFC6239(Suite B Cryptographic Suites for Secure Shell (SSH))中定义了SSH支持SuiteB的相关规范,以及SSH服务器和SSH客户端在身份认证时的算法要求、协商过程以及认证过程。SSH服务器和SSH客户端可基于X.509v3证书进行身份认证。

1.2  配置SSH服务器

1.2.1  SSH服务器配置任务简介

SSH服务器端配置任务如下:

(1)     生成本地密钥对

(2)     (可选)配置SSH服务端口号

(3)     开启SSH服务器

¡     开启Stelnet服务器功能

¡     开启SFTP服务器功能

¡     开启SCP服务器功能

¡     开启NETCONF over SSH服务器功能

(4)     配置SSH客户端登录时使用的用户线

仅对Stelnet服务器和NETCONF over SSH服务器必选。

(5)     配置客户端的公钥

采用publickey、password-publickey或any认证方式时必选。

(6)     配置SSH用户

¡     采用publickey、password-publickey或any认证方式时必选。

¡     采用password认证方式时可选。

(7)     (可选)配置SSH管理功能

用户可通过配置认证参数、连接数控制等,提高SSH连接的安全性。

(8)     (可选)配置SSH服务器所属的PKI域

1.2.2  生成本地密钥对

1. 功能简介

服务器端的DSA、ECDSA或RSA密钥对有两个用途,其一是用于在密钥交换阶段生成会话密钥和会话ID,另外一个是客户端用它来对连接的服务器进行认证。客户端验证服务器身份时,首先判断服务器发送的公钥与本地保存的服务器公钥是否一致,确认服务器公钥正确后,再使用该公钥对服务器发送的数字签名进行验证。

虽然一个客户端只会采用DSA、ECDSA或RSA公钥算法中的一种来认证服务器,但是由于不同客户端支持的公钥算法不同,为了确保客户端能够成功登录服务器,建议在服务器上同时生成DSA、ECDSA和RSA三种密钥对。

·     生成RSA密钥对时,将同时生成两个密钥对——服务器密钥对和主机密钥对。SSH1利用SSH服务器端的服务器公钥加密会话密钥,以保证会话密钥传输的安全;SSH2通过DH算法在SSH服务器和SSH客户端上生成会话密钥,不需要传输会话密钥,因此SSH2中没有利用服务器密钥对。

·     生成DSA密钥对时,只生成一个主机密钥对。SSH1不支持DSA算法。

·     生成ECDSA密钥对时,只生成一个主机密钥对。

2. 配置限制和指导

SSH仅支持默认名称的本地DSA、ECDSA或RSA密钥对,不支持指定名称的本地DSA、ECDSA或RSA密钥对。关于密钥对生成命令的相关介绍请参见“安全命令参考”中的“公钥管理”。

生成DSA密钥对时,要求输入的密钥模数的长度必须小于2048比特。

SSH服务器支持secp256r1和secp384r1类型的ECDSA密钥对。

如果服务器端不存在默认名称的本地RSA密钥对,则在服务器端执行SSH服务器相关命令行时(包括开启Stelnet/SFTP/SCP/NETCONF over SSH服务器、配置SSH用户、以及配置SSH服务器端的管理功能),系统会自动生成一个默认名称的本地RSA密钥对。

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     生成本地密钥对。

public-key local create { dsa | ecdsa { secp256r1 | secp384r1 } | rsa }

1.2.3  配置SSH服务端口号

1. 功能简介

用户通过修改SSH服务端口号,可以提高SSH连接的安全性。

2. 配置限制和指导

如果修改端口号前SSH服务是开启的,则修改端口号后系统会自动重启SSH服务,正在访问的用户将被断开,用户需要重新建立SSH连接后才可以继续访问。

如果使用1~1024之间的知名端口号,有可能会导致其他服务启动失败。

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     配置SSH服务端口号。

ssh server port port-number

注意

·     如果修改端口号前SSH服务是开启的,则修改端口号后系统会自动重启SSH服务,正在访问的用户将被断开,用户需要重新建立SSH连接后才可以继续访问。

·     如果使用1~1024之间的知名端口号,有可能会导致其他服务启动失败。

 

缺省情况下,SSH服务的端口号为22。

1.2.4  开启Stelnet服务器功能

1. 功能简介

本功能用于开启设备上的Stelnet服务器功能,使客户端能采用Stelnet的方式登录到设备。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     开启Stelnet服务器功能。

ssh server enable

缺省情况下,Stelnet服务器功能处于关闭状态。

1.2.5  开启SFTP服务器功能

1. 功能简介

本功能用于开启设备上的SFTP服务器功能,使客户端能采用SFTP的方式登录到设备。

2. 配置限制和指导

设备作为SFTP服务器时,不支持SSH1版本的客户端发起的SFTP连接。

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     开启SFTP服务器功能。

sftp server enable

缺省情况下,SFTP服务器处于关闭状态。

1.2.6  开启SCP服务器功能

1. 功能简介

本功能用于开启设备上的SCP服务器功能,使客户端能采用SCP的方式登录到设备。

2. 配置限制和指导

设备作为SCP服务器时,不支持SSH1版本的客户端发起的SCP连接。

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     开启SCP服务器功能。

scp server enable

缺省情况下,SCP服务器处于关闭状态。

1.2.7  开启NETCONF over SSH服务器功能

1. 功能简介

本功能用于开启设备上的NETCONF over SSH服务器功能,使得客户端能够使用支持NETCONF over SSH连接的客户端配置工具给设备下发NETCONF指令来实现对设备的访问。

2. 配置限制和指导

设备作为NETCONF over SSH服务器时,不支持SSH1版本的客户端发起的SSH连接。

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     开启NETCONF over SSH服务器功能。

netconf ssh server enable

缺省情况下,NETCONF over SSH服务器处于关闭状态。

关于NETCONF over SSH服务器相关命令的详细介绍,请见“网络管理和监控命令参考”中的“NETCONF”。

1.2.8  配置SSH客户端登录时使用的用户线

1. 功能简介

设备支持的SSH客户端根据不同的应用可分为:Stelnet客户端、SFTP客户端、SCP客户端和NETCONF over SSH客户端。

·     Stelnet客户端和NETCONF over SSH客户端通过VTY(Virtual Type Terminal,虚拟类型终端)用户线访问设备。因此,需要配置客户端登录时采用的VTY用户线,使其支持SSH远程登录协议。配置将在客户端下次登录时生效

·     SFTP客户端和SCP客户端不通过用户线访问设备,不需要配置登录时采用的VTY用户线。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入VTY用户线视图。

line vty number [ ending-number ]

(3)     配置登录用户线的认证方式为scheme方式。

authentication-mode scheme

缺省情况下,用户线认证为password方式。

该命令的详细介绍,请参见“基础配置命令参考”中的“登录设备”。

1.2.9  配置客户端的公钥

1. 功能简介

服务器在采用publickey方式验证客户端身份时,首先比较客户端发送的SSH用户名、主机公钥是否与本地配置的SSH用户名以及相应的客户端主机公钥一致,在确认用户名和客户端主机公钥正确后,对客户端发送的数字签名进行验证,该签名是客户端利用主机公钥对应的私钥计算出的。

因此,在采用publickey、password-publickey或any认证方式时:

·     在服务器端配置客户端的DSA、ECDSA或RSA主机公钥。

·     在客户端为该SSH用户指定与主机公钥对应的DSA、ECDSA或RSA主机私钥(若设备作为客户端,则在向服务器发起连接时通过指定公钥算法来实现)。

2. 导入方式

服务器端可以通过手工配置和从公钥文件中导入两种方式来配置客户端的公钥。

·     手工配置

事先在客户端上通过显示命令或其它方式查看其公钥信息,并记录客户端主机公钥的内容,然后采用手工输入的方式将客户端的公钥配置到服务器上。手工输入远端主机公钥时,可以逐个字符输入,也可以一次拷贝粘贴多个字符。这种方式要求手工输入或拷贝粘贴的主机公钥必须是未经转换的DER(Distinguished Encoding Rules,特异编码规则)公钥编码格式。手工配置客户端的公钥时,输入的主机公钥必须满足一定的格式要求。我司设备作为客户端时,通过display public-key local public命令显示的公钥可以作为输入的公钥内容;通过其他方式(如public-key local export命令)显示的公钥可能不满足格式要求,导致主机公钥保存失败。

·     从公钥文件导入

事先将客户端的公钥文件保存到服务器上(例如,通过FTP或TFTP,以二进制方式将客户端的公钥文件保存到服务器),服务器从本地保存的该公钥文件中导入客户端的公钥。导入公钥时,系统会自动将客户端公钥文件转换为PKCS(Public Key Cryptography Standards,公共密钥加密标准)编码形式。

3. 配置限制和指导

SSH服务器上配置的SSH客户端公钥数目建议不要超过20个。

配置客户端公钥时建议选用从公钥文件导入的方式配置远端主机的公钥。

4. 手工配置客户端的公钥

(1)     进入系统视图。

system-view

(2)     进入公钥视图。

public-key peer keyname

(3)     配置客户端的公钥。

逐个字符输入或拷贝粘贴公钥内容。

在输入公钥内容时,字符之间可以有空格,也可以按回车键继续输入数据。保存公钥数据时,将删除空格和回车符。具体介绍请参见“安全配置指导”中的“公钥管理”。

(4)     退出公钥视图并保存配置的主机公钥。

peer-public-key end

5. 从公钥文件中导入客户端的公钥

(1)     进入系统视图。

system-view

(2)     从公钥文件中导入远端客户端的公钥。

public-key peer keyname import sshkey filename

1.2.10  配置SSH用户

1. 功能简介

本配置用于创建SSH用户,并指定SSH用户的服务类型、认证方式以及对应的客户端公钥或数字证书。SSH用户的配置与服务器端采用的认证方式有关,具体如下:

·     如果服务器采用了publickey认证,则必须在设备上创建相应的SSH用户,以及同名的本地用户(用于下发授权属性:工作目录、用户角色)。

·     如果服务器采用了password认证,则必须在设备上创建相应的本地用户(适用于本地认证),或在远程服务器(如RADIUS服务器,适用于远程认证)上创建相应的SSH用户。这种情况下,并不需要通过本配置创建相应的SSH用户,如果创建了SSH用户,则必须保证指定了正确的服务类型以及认证方式。

·     如果服务器采用了password-publickey或any认证,则必须在设备上创建相应的SSH用户,以及在设备上创建同名的本地用户(适用于本地认证)或者在远程认证服务器上创建同名的SSH用户(如RADIUS服务器,适用于远程认证)。

2. 配置限制和指导

对SSH用户配置的修改,不会影响已经登录的SSH用户,仅对新登录的用户生效。

SCP或SFTP用户登录时使用的工作目录与用户使用的认证方式有关:

·     通过publickey或password-publickey认证登录服务器的用户使用的工作目录均为对应的本地用户视图下为该用户设置的工作目录。

·     通过password认证登录服务器的用户,使用的工作目录为通过AAA授权的工作目录。

SSH用户登录时拥有的用户角色与用户使用的认证方式有关:

·     通过publickey或password-publickey认证登录服务器的SSH用户将被授予对应的本地用户视图下指定的用户角色。

·     通过password认证登录服务器的SSH用户将被授予远程AAA服务器或设备本地授权的用户角色。

除password认证方式外,其它认证方式下均需要指定客户端的公钥或证书。

·     对于使用公钥认证的SSH用户,服务器端必须指定客户端的公钥,且指定的公钥必须已经存在,公钥内容的配置请参见“1.2.9  配置客户端的公钥”。

·     对于使用证书认证的SSH用户,服务器端必须指定用于验证客户端证书的PKI域,PKI域的配置请参见“安全配置指导”中的“PKI”。为保证SSH用户可以成功通过认证,通过ssh user命令或ssh server pki-domain命令指定的PKI域中必须存在用于验证客户端证书的CA证书。

关于本地用户以及远程认证的相关配置请参见“用户接入与认证配置指导”中的“AAA”。

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     创建SSH用户,并指定SSH用户的服务类型和认证方式。

ssh user username service-type { all | netconf | scp | sftp | stelnet } authentication-type { password | { any | password-publickey | publickey } [ assign { pki-domain domain-name | publickey keyname } ] }

SSH服务器上最多可以创建1024个SSH用户。

1.2.11  配置SSH管理功能

1. 设置SSH服务器是否兼容SSH1版本的客户端

(1)     进入系统视图。

system-view

(2)     设置SSH服务器兼容SSH1版本的客户端。

ssh server compatible-ssh1x enable

缺省情况下,SSH服务器不兼容SSH1版本的客户端。

2. 设置RSA服务器密钥对的最小更新间隔时间

(1)     进入系统视图。

system-view

(2)     设置RSA服务器密钥对的最小更新间隔时间。

ssh server rekey-interval interval

缺省情况下,系统不更新RSA服务器密钥对。

本功能仅对SSH客户端版本为SSH1的用户有效。

3. 设置SSH用户认证的超时时间

(1)     进入系统视图。

system-view

(2)     设置SSH用户的认证超时时间。

ssh server authentication-timeout time-out-value

缺省情况下,SSH用户的认证超时时间为60秒。

为了防止不法用户建立起TCP连接后,不进行接下来的认证而空占进程,妨碍其它合法用户的正常登录,可以设置验证超时时间,如果在规定的时间内没有完成认证就拒绝该连接。

4. 设置SSH用户请求连接的认证尝试最大次数

(1)     进入系统视图。

system-view

(2)     设置SSH认证尝试的最大次数。

ssh server authentication-retries retries

缺省情况下,SSH连接认证尝试的最大次数为3次。

本功能可以防止非法用户对用户名和密码进行恶意地猜测和破解。在any认证方式下,SSH客户端通过publickey和password方式进行认证尝试的次数总和,不能超过配置最大次数。

5. 设置对SSH客户端的访问控制

(1)     进入系统视图。

system-view

(2)     设置对SSH用户的访问控制。

(IPv4网络)

ssh server acl { advanced-acl-number | basic-acl-number | mac mac-acl-number }

(IPv6网络)

ssh server ipv6 acl { ipv6 { advanced-acl-number | basic-acl-number } | mac mac-acl-number }

缺省情况下,允许所有SSH用户向设备发起SSH访问。

通过配置本功能,使用ACL过滤向SSH服务器发起连接的SSH客户端。

6. 开启匹配ACL deny规则后打印日志信息功能

(1)     进入系统视图。

system-view

(2)     开启匹配ACL deny规则后打印日志信息功能。

ssh server acl-deny-log enable

缺省情况下,匹配ACL deny规则后打印日志信息功能处于关闭状态。

通过开启本功能,设备可以记录匹配deny规则的IP用户的登录日志,用户可以查看非法登录的地址信息。

7. 设置SSH服务器向SSH客户端发送的报文的DSCP优先级

(1)     进入系统视图。

system-view

(2)     设置SSH服务器向SSH客户端发送的报文的DSCP优先级。

(IPv4网络)

ssh server dscp dscp-value

(IPv6网络)

ssh server ipv6 dscp dscp-value

缺省情况下,SSH报文的DSCP优先级为48。

DSCP携带在IPv4报文中的ToS字段和IPv6报文中的Trafic class字段,用来体现报文自身的优先等级,决定报文传输的优先程度。

8. 设置SFTP用户连接的空闲超时时间

(1)     进入系统视图。

system-view

(2)     设置SFTP用户连接的空闲超时时间。

sftp server idle-timeout time-out-value

缺省情况下,SFTP用户连接的空闲超时时间为10分钟。

当SFTP用户连接的空闲时间超过设定的阈值后,系统会自动断开此用户的连接,从而有效避免用户长期占用连接而不进行任何操作。

9. 设置同时在线的最大SSH用户连接数

(1)     进入系统视图。

system-view

(2)     设置同时在线的最大SSH用户连接数。

aaa session-limit ssh max-sessions

缺省情况下,同时在线的最大SSH用户连接数为32。

系统资源有限,当前在线SSH用户数超过设定的最大值时,系统会拒绝新的SSH连接请求。该值的修改不会对已经在线的用户连接造成影响,只会对新的用户连接生效。

关于该命令的详细介绍,请参见“用户接入与认证命令参考”中的“AAA”。

1.2.12  配置SSH服务器所属的PKI域

1. 功能简介

SSH服务器利用所属的PKI域在密钥交换阶段发送证书给客户端,在ssh user命令中没有指定验证客户端的PKI域的情况下,使用服务器所属的PKI域来认证客户端并用它来对连接的客户端进行认证。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     配置SSH服务器所属的PKI域。

ssh server pki-domain domain-name

缺省情况下,未配置SSH服务器所属的PKI域。

1.3  配置Stelnet客户端

1.3.1  Stelnet客户端配置任务简介

Stelnet客户端配置任务如下:

(1)     生成本地密钥对

仅采用publickey、password-publickey或any认证方式时必选。

(2)     (可选)配置Stelnet客户端发送SSH报文使用的源IP地址

(3)     建立与Stelnet服务器的连接

(4)     (可选)与远程的Stelnet服务器建立基于Suite B算法集的连接

1.3.2  生成本地密钥对

1. 功能简介

客户端采用publickey、password-publickey或any认证方式时,需要生成本地密钥对。

2. 配置限制和指导

SSH仅支持默认名称的本地DSA、ECDSA或RSA密钥对,不支持指定名称的本地DSA、ECDSA或RSA密钥对。关于密钥对生成命令的相关介绍请参见“安全命令参考”中的“公钥管理”。

生成DSA密钥对时,要求输入的密钥模数的长度必须小于2048比特。

SSH客户端支持secp256r1和secp384r1类型的ECDSA密钥对。

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     生成本地密钥对。

public-key local create { dsa | ecdsa { secp256r1 | secp384r1 } | rsa }

1.3.3  配置Stelnet客户端发送SSH报文使用的源IP地址

1. 功能简介

Stelnet客户端与Stelnet服务器通信时,缺省采用路由决定的源IP地址作为发送报文的源地址。如果使用本配置指定了源IP地址或源接口,则采用该地址与服务器进行通信。

2. 配置限制和指导

为保证Stelnet客户端与Stelnet服务器通信链路的可达性,以及增加认证业务对SFTP客户端的可管理性,通常建议指定Loopback接口作为源接口,或者Loopback接口、Dialer接口的IP地址作为源IP地址。

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     配置Stelnet客户端发送SSH报文使用的源IP地址。

(IPv4网络)

ssh client source { interface interface-type interface-number | ip ip-address }

缺省情况下,IPv4 Stelnet客户端采用设备路由指定的SSH报文出接口主IP地址作为源IP地址。

(IPv6网络)

ssh client ipv6 source { interface interface-type interface-number | ipv6 ipv6-address }

缺省情况下,IPv6 Stelnet客户端采用设备自动选择的IPv6地址作为源IP地址。

1.3.4  建立与Stelnet服务器的连接

1. 功能简介

该配置任务用来启动Stelnet客户端程序,与远程Stelnet服务器建立连接,并指定公钥算法、首选加密算法、首选HMAC算法和首选密钥交换算法等。

Stelnet客户端访问服务器时,需要通过本地保存的服务器端的主机公钥来验证服务器的身份。设备作为Stelnet客户端时,默认支持首次认证,即当Stelnet客户端首次访问服务器,而客户端没有配置服务器端的主机公钥时,用户可以选择继续访问该服务器,并在客户端保存该主机公钥;当用户下次访问该服务器时,就以保存的主机公钥来认证该服务器。首次认证在比较安全的网络环境中可以简化客户端的配置,但由于该方式下客户端完全相信服务器公钥的正确性,因此存在一定的安全隐患。

2. 配置限制和指导

客户端不能同时连接IPv4和IPv6类型的服务器。

3. 与IPv4 Stelnet服务器端建立连接

请在用户视图下执行以下命令,与IPv4 Stelnet服务器端建立连接。

ssh2 server [ port-number ] [ identity-key { dsa | ecdsa-sha2-nistp256 | ecdsa-sha2-nistp384 | rsa | { x509v3-ecdsa-sha2-nistp256 | x509v3-ecdsa-sha2-nistp384 } pki-domain domain-name } | prefer-compress zlib | prefer-ctos-cipher { 3des-cbc | aes128-cbc | aes128-ctr | aes128-gcm | aes192-ctr | aes256-cbc | aes256-ctr | aes256-gcm | des-cbc } | prefer-ctos-hmac { md5 | md5-96 | sha1 | sha1-96 | sha2-256 | sha2-512 } | prefer-kex { dh-group-exchange-sha1 | dh-group1-sha1 | dh-group14-sha1 | ecdh-sha2-nistp256 | ecdh-sha2-nistp384 } | prefer-stoc-cipher { 3des-cbc | aes128-cbc | aes128-ctr | aes128-gcm | aes192-ctr | aes256-cbc | aes256-ctr | aes256-gcm | des-cbc } | prefer-stoc-hmac { md5 | md5-96 | sha1 | sha1-96 | sha2-256 | sha2-512 } ] * [ dscp dscp-value | escape character | { public-key keyname | server-pki-domain domain-name } | source { interface interface-type interface-number | ip ip-address } ] *

4. 与IPv6 Stelnet服务器端建立连接

请在用户视图下执行以下命令,与IPv6 Stelnet服务器端建立连接。

ssh2 ipv6 server [ port-number ] [ -i interface-type interface-number ] [ identity-key { dsa | ecdsa-sha2-nistp256 | ecdsa-sha2-nistp384 | rsa | { x509v3-ecdsa-sha2-nistp256 | x509v3-ecdsa-sha2-nistp384 } pki-domain domain-name } | prefer-compress zlib | prefer-ctos-cipher { 3des-cbc | aes128-cbc | aes128-ctr | aes128-gcm | aes192-ctr | aes256-cbc | aes256-ctr | aes256-gcm | des-cbc } | prefer-ctos-hmac { md5 | md5-96 | sha1 | sha1-96 | sha2-256 | sha2-512 } | prefer-kex { dh-group-exchange-sha1 | dh-group1-sha1 | dh-group14-sha1 | ecdh-sha2-nistp256 | ecdh-sha2-nistp384 } | prefer-stoc-cipher { 3des-cbc | aes128-cbc | aes128-ctr | aes128-gcm | aes192-ctr | aes256-cbc | aes256-ctr | aes256-gcm | des-cbc } | prefer-stoc-hmac { md5 | md5-96 | sha1 | sha1-96 | sha2-256 | sha2-512 } ] * [ dscp dscp-value | escape character | { public-key keyname | server-pki-domain domain-name } | source { interface interface-type interface-number | ipv6 ipv6-address } ] *

1.3.5  与远程的Stelnet服务器建立基于Suite B算法集的连接

请在用户视图下执行本命令,与远程的Stelnet服务器建立基于Suite B算法集的连接。

(IPv4网络)

ssh2 server [ port-number ] suite-b [ 128-bit | 192-bit ] pki-domain domain-name [ server-pki-domain domain-name ] [ prefer-compress zlib ] [ dscp dscp-value | escape character | source { interface interface-type interface-number | ip ip-address } ] *

(IPv6网络)

ssh2 ipv6 server [ port-number ] [ -i interface-type interface-number ] suite-b [ 128-bit | 192-bit ] pki-domain domain-name [ server-pki-domain domain-name ] [ prefer-compress zlib ] [ dscp dscp-value | escape character | source { interface interface-type interface-number | ipv6 ipv6-address } ] *

1.4  配置SFTP客户端

1.4.1  SFTP客户端配置任务简介

SFTP客户端配置任务如下:

(1)     生成本地密钥对

仅采用publickey、password-publickey或any认证方式时必选。

(2)     (可选)配置SFTP客户端发送SFTP报文使用的源IP地址

(3)     建立与SFTP服务器的连接

(4)     (可选)与远程的SFTP服务器建立基于Suite B算法集的连接

(5)     (可选)SFTP目录操作

(6)     (可选)SFTP文件操作

(7)     (可选)显示帮助信息

(8)     (可选)终止与SFTP服务器的连接

1.4.2  生成本地密钥对

1. 功能简介

客户端采用publickey、password-publickey或any认证方式时,需要生成本地密钥对。

2. 配置限制和指导

SSH仅支持默认名称的本地DSA、ECDSA或RSA密钥对,不支持指定名称的本地DSA、ECDSA或RSA密钥对。关于密钥对生成命令的相关介绍请参见“安全命令参考”中的“公钥管理”。

生成DSA密钥对时,要求输入的密钥模数的长度必须小于2048比特。

SSH客户端支持secp256r1和secp384r1类型的ECDSA密钥对。

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     生成本地密钥对。

public-key local create { dsa | ecdsa { secp256r1 | secp384r1 } | rsa }

1.4.3  配置SFTP客户端发送SFTP报文使用的源IP地址

1. 功能简介

SFTP客户端与SFTP服务器通信时,缺省采用路由决定的源IP地址作为发送报文的源地址。如果使用本配置指定了源IP地址或源接口,则采用该地址与服务器进行通信。

2. 配置限制和指导

为保证SFTP客户端与SFTP服务器通信链路的可达性,以及增加认证业务对SFTP客户端的可管理性,通常建议指定Loopback接口作为源接口,或者Loopback接口、Dialer接口的IP地址作为源IP地址。

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     配置SFTP客户端发送SFTP报文使用的源IP地址。

(IPv4网络)

sftp client source { ip ip-address | interface interface-type interface-number }

缺省情况下,IPv4客户端采用设备路由指定的SFTP报文的出接口主IP地址作为源IP地址。

(IPv6网络)

sftp client ipv6 source { ipv6 ipv6-address | interface interface-type interface-number }

缺省情况下,IPv6客户端采用设备自动选择的IPv6地址作为源IP地址。

1.4.4  建立与SFTP服务器的连接

1. 功能简介

该配置任务用来启动SFTP客户端程序,与远程SFTP服务器建立连接,并指定公钥算法、首选加密算法、首选HMAC算法和首选密钥交换算法等。SFTP客户端与服务器成功建立连接之后,用户即可进入到服务器端上的SFTP客户端视图下进行目录、文件等操作。

SFTP客户端访问服务器时,需要通过本地保存的服务器端的主机公钥来验证服务器的身份。设备作为SFTP客户端时,默认支持首次认证,即当SFTP客户端首次访问服务器,而客户端没有配置服务器端的主机公钥时,用户可以选择继续访问该服务器,并在客户端保存该主机公钥;当用户下次访问该服务器时,就以保存的主机公钥来认证该服务器。首次认证在比较安全的网络环境中可以简化客户端的配置,但由于该方式下客户端完全相信服务器公钥的正确性,因此存在一定的安全隐患。

2. 配置限制和指导

客户端不能同时连接IPv4和IPv6类型的服务器。

3. 与IPv4 SFTP服务器建立连接,并进入SFTP客户端视图

请在用户视图下执行以下命令,与IPv4 SFTP服务器建立连接,并进入SFTP客户端视图。

sftp server [ port-number ] [ identity-key { dsa | ecdsa-sha2-nistp256 | ecdsa-sha2-nistp384 | rsa | { x509v3-ecdsa-sha2-nistp256 | x509v3-ecdsa-sha2-nistp384 } pki-domain domain-name } | prefer-compress zlib | prefer-ctos-cipher { 3des-cbc | aes128-cbc | aes128-ctr | aes128-gcm | aes192-ctr | aes256-cbc | aes256-ctr | aes256-gcm | des-cbc } | prefer-ctos-hmac { md5 | md5-96 | sha1 | sha1-96 | sha2-256 | sha2-512 } | prefer-kex { dh-group-exchange-sha1 | dh-group1-sha1 | dh-group14-sha1 | ecdh-sha2-nistp256 | ecdh-sha2-nistp384 } | prefer-stoc-cipher { 3des-cbc | aes128-cbc | aes128-ctr | aes128-gcm | aes192-ctr | aes256-cbc | aes256-ctr | aes256-gcm | des-cbc } | prefer-stoc-hmac { md5 | md5-96 | sha1 | sha1-96 | sha2-256 | sha2-512 } ] * [ dscp dscp-value | { public-key keyname | server-pki-domain domain-name } | source { interface interface-type interface-number | ip ip-address } ] *

4. 与IPv6 SFTP服务器建立连接,并进入SFTP客户端视图

请在用户视图下执行以下命令,与IPv6 SFTP服务器建立连接,并进入SFTP客户端视图。

sftp ipv6 server [ port-number ] [ -i interface-type interface-number ] [ identity-key { dsa | ecdsa-sha2-nistp256 | ecdsa-sha2-nistp384 | rsa | { x509v3-ecdsa-sha2-nistp256 | x509v3-ecdsa-sha2-nistp384 } pki-domain domain-name } | prefer-compress zlib | prefer-ctos-cipher { 3des-cbc | aes128-cbc | aes128-ctr | aes128-gcm | aes192-ctr | aes256-cbc | aes256-ctr | aes256-gcm | des-cbc } | prefer-ctos-hmac { md5 | md5-96 | sha1 | sha1-96 | sha2-256 | sha2-512 } | prefer-kex { dh-group-exchange-sha1 | dh-group1-sha1 | dh-group14-sha1 | ecdh-sha2-nistp256 | ecdh-sha2-nistp384 } | prefer-stoc-cipher { 3des-cbc | aes128-cbc | aes128-ctr | aes128-gcm | aes192-ctr | aes256-cbc | aes256-ctr | aes256-gcm | des-cbc } | prefer-stoc-hmac { md5 | md5-96 | sha1 | sha1-96 | sha2-256 | sha2-512 } ] * [ dscp dscp-value | { public-key keyname | server-pki-domain domain-name } | source { interface interface-type interface-number | ipv6 ipv6-address } ] *

1.4.5  与远程的SFTP服务器建立基于Suite B算法集的连接

请在用户视图下执行本命令,与远程的SFTP服务器建立基于Suite B算法集的连接。

(IPv4网络)

sftp server [ port-number ] suite-b [ 128-bit | 192-bit ] pki-domain domain-name [ server-pki-domain domain-name ] [ prefer-compress zlib ] [ dscp dscp-value | source { interface interface-type interface-number | ip ip-address } ] *

(IPv6网络)

ssh2 ipv6 server [ port-number ] [ -i interface-type interface-number ] suite-b [ 128-bit | 192-bit ] pki-domain domain-name [ server-pki-domain domain-name ] [ prefer-compress zlib ] [ dscp dscp-value | escape character | source { interface interface-type interface-number | ipv6 ipv6-address } ] *

1.4.6  SFTP目录操作

1. 功能简介

SFTP目录操作包括:改变或显示当前的工作路径、显示指定目录下的文件或目录信息、改变服务器上指定的文件夹的名字、创建或删除目录等操作。

2. 改变远程SFTP服务器上的工作路径

(1)     进入SFTP客户端视图。

具体命令请参考“1.4.4  建立与SFTP服务器的连接”。

(2)     改变远程SFTP服务器上的工作路径。

cd [ remote-path ]

(3)     (可选)返回到上一级目录。

cdup

3. 显示远程SFTP服务器上的当前工作目录

(1)     进入SFTP客户端视图。

具体命令请参考“1.4.4  建立与SFTP服务器的连接”。

(2)     显示远程SFTP服务器上的当前工作目录。

pwd

4. 显示指定目录下的文件列表

(1)     进入SFTP客户端视图。

具体命令请参考“1.4.4  建立与SFTP服务器的连接”。

(2)     显示指定目录下的文件列表。

¡     dir [ -a | -l ] [ remote-path ]

¡     ls [ -a | -l ] [ remote-path ]

dirls两条命令的作用相同。

5. 改变SFTP服务器上指定的目录的名字

(1)     进入SFTP客户端视图。

具体命令请参考“1.4.4  建立与SFTP服务器的连接”。

(2)     改变SFTP服务器上指定的目录的名字。

rename old-name new-name

6. 在远程SFTP服务器上创建新的目录

(1)     进入SFTP客户端视图。

具体命令请参考“1.4.4  建立与SFTP服务器的连接”。

(2)     在远程SFTP服务器上创建新的目录。

mkdir remote-path

7. 删除SFTP服务器上指定的目录

(1)     进入SFTP客户端视图。

具体命令请参考“1.4.4  建立与SFTP服务器的连接”。

(2)     删除SFTP服务器上指定的目录。

rmdir remote-path

1.4.7  SFTP文件操作

1. 功能简介

SFTP文件操作包括:改变文件名、下载文件、上传文件、显示文件列表和删除文件。

2. 改变SFTP服务器上指定的文件的名字

(1)     进入SFTP客户端视图。

具体命令请参考“1.4.4  建立与SFTP服务器的连接”。

(2)     改变SFTP服务器上指定的文件的名字。

rename old-name new-name

3. 从远程服务器上下载文件并存储在本地

(1)     进入SFTP客户端视图。

具体命令请参考“1.4.4  建立与SFTP服务器的连接”。

(2)     从远程服务器上下载文件并存储在本地。

get remote-file [ local-file ]

4. 将本地的文件上传到远程SFTP服务器

(1)     进入SFTP客户端视图。

具体命令请参考“1.4.4  建立与SFTP服务器的连接”。

(2)     将本地的文件上传到远程SFTP服务器。

put local-file [ remote-file ]

5. 显示指定目录下的文件

(1)     进入SFTP客户端视图。

具体命令请参考“1.4.4  建立与SFTP服务器的连接”。

(2)     显示指定目录下的文件。

¡     dir [ -a | -l ] [ remote-path ]

¡     ls [ -a | -l ] [ remote-path ]

dirls两条命令的作用相同。

6. 删除SFTP服务器上指定的文件

(1)     进入SFTP客户端视图。

具体命令请参考“1.4.4  建立与SFTP服务器的连接”。

(2)     删除SFTP服务器上指定的文件。

¡     delete remote-file

¡     remove remote-file

deleteremove两条命令的功能相同。

1.4.8  显示帮助信息

1. 功能简介

本配置用于显示命令的帮助信息,如命令格式、参数配置等。

2. 配置步骤

(1)     进入SFTP客户端视图。

具体命令请参考“1.4.4  建立与SFTP服务器的连接”。

(2)     显示SFTP客户端命令的帮助信息。

¡     help

¡     ?

help和?的功能相同。

1.4.9  终止与SFTP服务器的连接

(1)     进入SFTP客户端视图。

具体命令请参考“1.4.4  建立与SFTP服务器的连接”。

(2)     终止与SFTP服务器的连接,并退回用户视图。

¡     bye

¡     exit

¡     quit

byeexitquit三条命令的功能相同。

1.5  配置SCP客户端

1.5.1  SCP客户端配置任务简介

SCP客户端配置任务如下:

(1)     生成本地密钥对

仅采用publickey、password-publickey或any认证方式时必选。

(2)     与远程SCP服务器传输文件

(3)     (可选)与远程的SCP服务器建立基于Suite B算法集的连接

1.5.2  生成本地密钥对

1. 功能简介

客户端采用publickey、password-publickey或any认证方式时,需要生成本地密钥对。

2. 配置限制和指导

SSH仅支持默认名称的本地DSA、ECDSA或RSA密钥对,不支持指定名称的本地DSA、ECDSA或RSA密钥对。关于密钥对生成命令的相关介绍请参见“安全命令参考”中的“公钥管理”。

生成DSA密钥对时,要求输入的密钥模数的长度必须小于2048比特。

SSH客户端支持secp256r1和secp384r1类型的ECDSA密钥对。

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     生成本地密钥对。

public-key local create { dsa | ecdsa { secp256r1 | secp384r1 } | rsa }

1.5.3  与远程SCP服务器传输文件

1. 功能简介

该配置任务用来启动SCP客户端程序,与远程SCP服务器建立连接,并进行安全的文件传输操作。

SCP客户端访问服务器时,需要通过本地保存的服务器端的主机公钥来验证服务器的身份。设备作为SCP客户端时,默认支持首次认证,即当SCP客户端首次访问服务器,而客户端没有配置服务器端的主机公钥时,用户可以选择继续访问该服务器,并在客户端保存该主机公钥;当用户下次访问该服务器时,就以保存的主机公钥来认证该服务器。首次认证在比较安全的网络环境中可以简化客户端的配置,但由于该方式下客户端完全相信服务器公钥的正确性,因此存在一定的安全隐患。

2. 配置限制和指导

客户端不能同时连接IPv4和IPv6类型的服务器。

3. 与远程IPv4 SCP服务器建立连接,并进行文件传输

请在用户视图下执行以下命令,与远程IPv4 SCP服务器建立连接,并进行文件传输。

scp server [ port-number ] { get | put } source-file-name [ destination-file-name ] [ identity-key { dsa | ecdsa-sha2-nistp256 | ecdsa-sha2-nistp384 | rsa | { x509v3-ecdsa-sha2-nistp256 | x509v3-ecdsa-sha2-nistp384 } pki-domain domain-name } | prefer-compress zlib | prefer-ctos-cipher { 3des-cbc | aes128-cbc | aes128-ctr | aes128-gcm | aes192-ctr | aes256-cbc | aes256-ctr | aes256-gcm | des-cbc } | prefer-ctos-hmac { md5 | md5-96 | sha1 | sha1-96 | sha2-256 | sha2-512 } | prefer-kex { dh-group-exchange-sha1 | dh-group1-sha1 | dh-group14-sha1 | ecdh-sha2-nistp256 | ecdh-sha2-nistp384 } | prefer-stoc-cipher { 3des-cbc | aes128-cbc | aes128-ctr | aes128-gcm | aes192-ctr | aes256-cbc | aes256-ctr | aes256-gcm | des-cbc } | prefer-stoc-hmac { md5 | md5-96 | sha1 | sha1-96 | sha2-256 | sha2-512 } ] * [ { public-key keyname | server-pki-domain domain-name } | source { interface interface-type interface-number | ip ip-address } ] *

4. 与远程IPv6 SCP服务器建立连接,并进行文件传输

请在用户视图下执行以下命令,与远程IPv6 SCP服务器建立连接,并进行文件传输。

scp ipv6 server [ port-number ] [ -i interface-type interface-number ] { get | put } source-file-name [ destination-file-name ] [ identity-key { dsa | ecdsa-sha2-nistp256 | ecdsa-sha2-nistp384 | rsa | { x509v3-ecdsa-sha2-nistp256 | x509v3-ecdsa-sha2-nistp384 } pki-domain domain-name } | prefer-compress zlib | prefer-ctos-cipher { 3des-cbc | aes128-cbc | aes128-ctr | aes128-gcm | aes192-ctr | aes256-cbc | aes256-ctr | aes256-gcm | des-cbc } | prefer-ctos-hmac { md5 | md5-96 | sha1 | sha1-96 | sha2-256 | sha2-512 } | prefer-kex { dh-group-exchange-sha1 | dh-group1-sha1 | dh-group14-sha1 | ecdh-sha2-nistp256 | ecdh-sha2-nistp384 } | prefer-stoc-cipher { 3des-cbc | aes128-cbc | aes128-ctr | aes128-gcm | aes192-ctr | aes256-cbc | aes256-ctr | aes256-gcm | des-cbc } | prefer-stoc-hmac { md5 | md5-96 | sha1 | sha1-96 | sha2-256 | sha2-512 } ] * [ { public-key keyname | server-pki-domain domain-name } | source { interface interface-type interface-number | ipv6 ipv6-address } ] *

1.5.4  与远程的SCP服务器建立基于Suite B算法集的连接

请在用户视图下执行本命令,与远程的SCP服务器建立基于Suite B算法集的连接。

(IPv4网络)

scp server [ port-number ] { get | put } source-file-name [ destination-file-name ] suite-b [ 128-bit | 192-bit ] pki-domain domain-name [ server-pki-domain domain-name ] [ prefer-compress zlib ] [ source { interface interface-type interface-number | ip ip-address } ]

(IPv6网络)

scp ipv6 server [ port-number ] [ -i interface-type interface-number ] { get | put } source-file-name [ destination-file-name ] suite-b [ 128-bit | 192-bit ] pki-domain domain-name [ server-pki-domain domain-name ] [ prefer-compress zlib ] [ source { interface interface-type interface-number | ipv6 ipv6-address } ]

1.6  配置SSH2协议算法集

1.6.1  SSH协议算法集简介

设备作为服务器或者客户端与对端建立Stelnet、SFTP、SCP会话过程中,将使用指定的算法优先列表进行协商。指定的算法包括:

·     密钥交换算法

·     主机签名算法

·     加密算法

·     MAC算法

协商过程中,客户端采用的算法匹配顺序为优先列表中各算法的配置顺序,服务器根据客户端的算法来匹配和协商。

1.6.2  配置SSH2协议密钥交换算法优先列表

(1)     进入系统视图。

system-view

(2)     配置SSH2协议密钥交换算法优先列表。

ssh2 algorithm key-exchange { dh-group-exchange-sha1 | dh-group1-sha1 | dh-group14-sha1 | ecdh-sha2-nistp256 | ecdh-sha2-nistp384 } *

缺省情况下,SSH2协议采用的缺省密钥交换算法从高到底的优先级列表为ecdh-sha2-nistp256ecdh-sha2-nistp384dh-group-exchange-sha1dh-group14-sha1dh-group1-sha1

1.6.3  配置SSH2协议主机签名算法优先列表

(1)     进入系统视图。

system-view

(2)     配置SSH2协议主机签名算法优先列表。

ssh2 algorithm public-key { dsa | ecdsa-sha2-nistp256 | ecdsa-sha2-nistp384 | rsa | x509v3-ecdsa-sha2-nistp256 | x509v3-ecdsa-sha2-nistp384 } *

缺省情况下,SSH2协议使用的缺省主机签名算法从高到底的优先级列表为x509v3-ecdsa-sha2-nistp256x509v3-ecdsa-sha2-nistp384ecdsa-sha2-nistp256ecdsa-sha2-nistp384rsadsa

1.6.4  配置SSH2协议加密算法优先列表

(1)     进入系统视图。

system-view

(2)     配置SSH2协议加密算法优先列表。

ssh2 algorithm cipher { 3des-cbc | aes128-cbc | aes128-ctr | aes128-gcm | aes192-ctr | aes256-cbc | aes256-ctr | aes256-gcm | des-cbc } *

缺省情况下,SSH2协议采用的缺省加密算法从高到底的优先级列表为aes128-ctraes192-ctraes256-ctraes128-gcmaes256-gcmaes128-cbc3des-cbcaes256-cbcdes-cbc

1.6.5  配置SSH2协议MAC算法优先列表

(1)     进入系统视图。

system-view

(2)     配置SSH2协议MAC算法优先列表。

ssh2 algorithm mac { md5 | md5-96 | sha1 | sha1-96 | sha2-256 | sha2-512 } *

缺省情况下,SSH2协议使用的缺省MAC算法从高到底的优先级列表为sha2-256sha2-512sha1md5sha1-96md5-96

1.7  SSH显示和维护

在完成上述配置后,在任意视图下执行display命令,可以显示配置后SSH的运行情况,通过查看显示信息验证配置的效果。

说明

由于MSG系列、WX2500H-WiNet系列、WAC系列、WX2500H-LI和AC1000系列不支持IRF功能,因此不支持IRF模式的命令行配置。

 

表1-2 SSH显示和维护

操作

命令

显示本地密钥对中的公钥部分

display public-key local { dsa | ecdsa | rsa } public [ name publickey-name ]

显示保存在本地的远端主机的公钥信息

display public-key peer [ brief | name publickey-name ]

显示SFTP客户端的源IP地址配置

display sftp client source

显示Stelnet客户端的源IP地址配置

display ssh client source

在SSH服务器端显示该服务器的状态信息或会话信息

(独立运行模式)

display ssh server { session | status }

(IRF模式)

display ssh server { session [ slot slot-number ] | status }

在SSH服务器端显示SSH用户信息

display ssh user-information [ username ]

显示设备上配置的SSH2协议使用的算法优先列表

display ssh2 algorithm

 

说明

display public-key localdisplay public-key peer命令的详细介绍请参见“安全命令参考”中的“公钥管理”。

 

1.8  Stelnet典型配置举例

说明

请确保无线控制器和客户端路由可达。

 

1.8.1  设备作为Stelnet服务器配置举例(password认证)

1. 组网需求

·     用户可以通过Client上运行的Stelnet客户端软件(SSH2版本)安全地登录到AC上,并被授予用户角色network-admin进行配置管理;

·     AC采用password认证方式对Stelnet客户端进行认证,客户端的用户名和密码保存在本地。

2. 组网图

图1-1 设备作为Stelnet服务器配置组网图

3. 配置步骤

(1)     配置Stelnet服务器

# 生成RSA密钥对。

<AC> system-view

[AC] public-key local create rsa

The range of public key modulus is (512 ~ 2048).

If the key modulus is greater than 512, it will take a few minutes.

Press CTRL+C to abort.

Input the modulus length [default = 1024]:

Generating Keys...

.

Create the key pair successfully.

# 生成DSA密钥对。

[AC] public-key local create dsa

The range of public key modulus is (512 ~ 2048).

If the key modulus is greater than 512, it will take a few minutes.

Press CTRL+C to abort.

Input the modulus length [default = 1024]:

Generating Keys...

.

Create the key pair successfully.

# 生成ECDSA密钥对。

[AC] public-key local create ecdsa secp256r1

Generating Keys...

.

Create the key pair successfully.

# 使能Stelnet服务器功能。

[AC] ssh server enable

# 配置VLAN接口2的IP地址,客户端将通过该地址连接Stelnet服务器。

[AC] interface vlan-interface 2

[AC-Vlan-interface2] ip address 192.168.1.40 255.255.255.0

[AC-Vlan-interface2] quit

# 设置Stelnet客户端登录用户线的认证方式为AAA认证。

[AC] line vty 0 31

[AC-line-vty0-63] authentication-mode scheme

[AC-line-vty0-63] quit

# 创建设备管理类本地用户client001,并设置密码为明文aabbcc,服务类型为SSH,用户角色为network-admin。

[AC] local-user client001 class manage

[AC-luser-manage-client001] password simple aabbcc

[AC-luser-manage-client001] service-type ssh

[AC-luser-manage-client001] authorization-attribute user-role network-admin

[AC-luser-manage-client001] quit

# 配置SSH用户client001的服务类型为Stelnet,认证方式为password认证。(此步骤可以不配置)

[AC] ssh user client001 service-type stelnet authentication-type password

(2)     Stelnet客户端建立与Stelnet服务器的连接

说明

Stelnet客户端软件有很多,例如PuTTY、OpenSSH等。本文中仅以客户端软件PuTTY0.58为例,说明Stelnet客户端的配置方法。

 

# 建立与Stelnet服务器端的连接。

打开PuTTY.exe程序,出现如图1-2所示的客户端配置界面。在“Host Name(or IP address)”文本框中输入Stelnet服务器的IP地址为192.168.1.40。

图1-2 Stelnet客户端配置界面

 

图1-2中,单击<Open>按钮。按提示输入用户名client001及密码aabbcc,即可进入AC的配置界面。

1.8.2  设备作为Stelnet服务器配置举例(publickey认证)

1. 组网需求

·     用户可以通过Client上运行的Stelnet客户端软件(SSH2版本)安全地登录到AC上,并被授予用户角色network-admin进行配置管理;

·     AC采用publickey认证方式对Stelnet客户端进行认证,使用的公钥算法为RSA。

2. 组网图

图1-3 设备作为Stelnet服务器配置组网图

3. 配置步骤

说明

·     在服务器的配置过程中需要指定客户端的公钥信息,因此建议首先完成客户端密钥对的配置,再进行服务器的配置。

·     客户端软件有很多,例如PuTTY、OpenSSH等。本文中仅以客户端软件PuTTY0.58为例,说明Stelnet客户端的配置方法。

 

(1)     配置Stelnet客户端

# 生成RSA密钥对。

在客户端运行PuTTYGen.exe,在参数栏中选择“SSH-2 RSA”,点击<Generate>,产生客户端密钥对。

图1-4 生成客户端密钥(步骤1)

 

在产生密钥对的过程中需不停地移动鼠标,鼠标移动仅限于图1-5蓝色框中除绿色标记进程条外的地方,否则进程条的显示会不动,密钥对将停止产生。

图1-5 生成客户端密钥(步骤2

 

密钥对产生后,点击<Save public key>,输入存储公钥的文件名key.pub,点击<保存>按钮。

图1-6 生成客户端密钥(步骤3)

 

点击<Save private key>存储私钥,弹出警告框,提醒是否保存没做任何保护措施的私钥,点击<Yes>,输入私钥文件名为private.ppk,点击保存。

图1-7 生成客户端密钥(步骤4)

 

客户端生成密钥对后,需要将保存的公钥文件key.pub通过FTP/TFTP方式上传到服务器,具体过程略。

(2)     配置Stelnet服务器

# 生成RSA密钥对。

<AC> system-view

[AC] public-key local create rsa

The range of public key modulus is (512 ~ 2048).

If the key modulus is greater than 512, it will take a few minutes.

Press CTRL+C to abort.

Input the modulus length [default = 1024]:

Generating Keys...

.

Create the key pair successfully.

# 生成DSA密钥对。

[AC] public-key local create dsa

The range of public key modulus is (512 ~ 2048).

If the key modulus is greater than 512, it will take a few minutes.

Press CTRL+C to abort.

Input the modulus length [default = 1024]:

Generating Keys...

.

Create the key pair successfully.

# 生成ECDSA密钥对。

[AC] public-key local create ecdsa secp256r1

Generating Keys...

.

Create the key pair successfully.

# 使能Stelnet服务器功能。

[AC] ssh server enable

# 配置VLAN接口2的IP地址,客户端将通过该地址连接Stelnet服务器。

[AC] interface vlan-interface 2

[AC-Vlan-interface2] ip address 192.168.1.40 255.255.255.0

[AC-Vlan-interface2] quit

# 设置Stelnet客户端登录用户线的认证方式为AAA认证。

[AC] line vty 0 63

[AC-line-vty0-63] authentication-mode scheme

[AC-line-vty0-63] quit

# 从文件key.pub中导入远端的公钥,并命名为switchkey。

[AC] public-key peer ackey import sshkey key.pub

# 设置SSH用户client002的认证方式为publickey,并指定公钥为ackey。

[AC] ssh user client002 service-type stelnet authentication-type publickey assign publickey ackey

# 创建设备管理类本地用户client002,并设置服务类型为SSH,用户角色为network-admin。

[AC] local-user client002 class manage

[AC-luser-manage-client002] service-type ssh

[AC-luser-manage-client002] authorization-attribute user-role network-admin

[AC-luser-manage-client002] quit

(3)     Stelnet客户端建立与Stelnet服务器的连接

# 指定私钥文件,并建立与Stelnet服务器的连接。

打开PuTTY.exe程序,出现如图1-8所示的客户端配置界面。在“Host Name(or IP address)”文本框中输入Stelnet服务器的IP地址为192.168.1.40。

图1-8 Stelnet客户端配置界面

 

# 单击左侧导航栏“Connection->SSH”,出现如图1-9的界面。选择“Preferred SSH protocol version”为“2”。

图1-9 Stelnet客户端配置界面

 

单击左侧导航栏“Connection->SSH”下面的“Auth”(认证),出现如图1-10的界面。单击<Browse…>按钮,弹出文件选择窗口。选择与配置到服务器端的公钥对应的私钥文件private.ppk。

图1-10 Stelnet客户端配置界面

 

图1-10,单击<Open>按钮。按提示输入用户名client002,即可进入Switch的配置界面。

1.8.3  设备作为Stelnet客户端配置举例(password认证)

1. 组网需求

·     配置AC作为Stelnet客户端,用户能够通过AC安全地登录到Switch上,并被授予用户角色network-admin进行配置管理。

·     Switch作为Stelnet服务器采用password认证方式对Stelnet客户端进行认证,客户端的用户名和密码保存在Switch上。

2. 组网图

图1-11 设备作为Stelnet客户端配置组网图

3. 配置步骤

(1)     配置Stelnet服务器

# 生成RSA密钥对。

<Switch> system-view

[Switch] public-key local create rsa

The range of public key modulus is (512 ~ 2048).

If the key modulus is greater than 512, it will take a few minutes.

Press CTRL+C to abort.

Input the modulus length [default = 1024]:

Generating Keys...

.

Create the key pair successfully.

# 生成DSA密钥对。

[Switch] public-key local create dsa

The range of public key modulus is (512 ~ 2048).

If the key modulus is greater than 512, it will take a few minutes.

Press CTRL+C to abort.

Input the modulus length [default = 1024]:

Generating Keys...

.

Create the key pair successfully.

# 生成ECDSA密钥对。

[Switch] public-key local create ecdsa secp256r1

Generating Keys...

.

Create the key pair successfully.

# 使能Stelnet服务器功能。

[Switch] ssh server enable

# 配置VLAN接口2的IP地址,客户端将通过该地址连接Stelnet服务器。

[Switch] interface vlan-interface 2

[Switch-Vlan-interface2] ip address 192.168.1.40 255.255.255.0

[Switch-Vlan-interface2] quit

# 设置Stelnet客户端登录用户线的认证方式为AAA认证。

[Switch] line vty 0 63

[Switch-line-vty0-63] authentication-mode scheme

[Switch-line-vty0-63] quit

# 创建设备管理类本地用户client001,并设置密码为明文aabbcc,服务类型为SSH,用户角色为network-admin。

[Switch] local-user client001 class manage

[Switch-luser-manage-client001] password simple aabbcc

[Switch-luser-manage-client001] service-type ssh

[Switch-luser-manage-client001] authorization-attribute user-role network-admin

[Switch-luser-manage-client001] quit

# 配置SSH用户client001的服务类型为Stelnet,认证方式为password认证。(此步骤可以不配置)

[Switch] ssh user client001 service-type stelnet authentication-type password

# 配置SSH2协议所使用的主机签名算法为dsa

[Switch] ssh2 algorithm public-key dsa

(2)     Stelnet客户端建立与Stelnet服务器的连接

# 配置VLAN接口2的IP地址。

<AC> system-view

[AC] interface vlan-interface 2

[AC-Vlan-interface2] ip address 192.168.1.56 255.255.255.0

[AC-Vlan-interface2] quit

[AC] quit

¡     客户端本地没有服务器端的主机公钥,首次与服务器建立连接

# 建立到服务器192.168.1.40的SSH连接,选择在不认证服务器的情况下继续访问服务网,并在客户端保存服务器端的本地公钥。

<AC> ssh2 192.168.1.40

Username: client001

Press CTRL+C to abort.

Connecting to 192.168.1.40 port 22.

The server is not authenticated. Continue? [Y/N]:y

Do you want to save the server public key? [Y/N]:y

client001@192.168.1.40's password:

 

Enter a character ~ and a dot to abort.

 

******************************************************************************

* Copyright (c) 2004-2017 New H3C Technologies Co., Ltd. All rights reserved.*

* Without the owner's prior written consent,                                 *

* no decompiling or reverse-engineering shall be allowed.                    *

******************************************************************************

 

<Switch>

输入正确的密码之后,即可成功登录到Switch上。由于选择在本地保存服务器端的主机公钥,下次用户登录Switch时直接输入正确密码即可成功登录。

¡     客户端配置服务器端的主机公钥后,与服务器建立连接

# 在客户端配置SSH服务器端的主机公钥。在公钥视图输入服务器端的主机公钥,即在服务器端通过display public-key local dsa public命令显示的公钥内容。

[AC] public-key peer key1

Enter public key view. Return to system view with "peer-public-key end" command.

[AC-pkey-public-key-key1]308201B73082012C06072A8648CE3804013082011F0281810

0D757262C4584C44C211F18BD96E5F0

[AC-pkey-public-key-key1]61C4F0A423F7FE6B6B85B34CEF72CE14A0D3A5222FE08CECE

65BE6C265854889DC1EDBD13EC8B274

[AC-pkey-public-key-key1]DA9F75BA26CCB987723602787E922BA84421F22C3C89CB9B0

6FD60FE01941DDD77FE6B12893DA76E

[AC-pkey-public-key-key1]EBC1D128D97F0678D7722B5341C8506F358214B16A2FAC4B3

68950387811C7DA33021500C773218C

[AC-pkey-public-key-key1]737EC8EE993B4F2DED30F48EDACE915F0281810082269009E

14EC474BAF2932E69D3B1F18517AD95

[AC-pkey-public-key-key1]94184CCDFCEAE96EC4D5EF93133E84B47093C52B20CD35D02

492B3959EC6499625BC4FA5082E22C5

[AC-pkey-public-key-key1]B374E16DD00132CE71B020217091AC717B612391C76C1FB2E

88317C1BD8171D41ECB83E210C03CC9

[AC-pkey-public-key-key1]B32E810561C21621C73D6DAAC028F4B1585DA7F42519718CC

9B09EEF0381840002818000AF995917

[AC-pkey-public-key-key1]E1E570A3F6B1C2411948B3B4FFA256699B3BF871221CC9C5D

F257523777D033BEE77FC378145F2AD

[AC-pkey-public-key-key1]D716D7DB9FCABB4ADBF6FB4FDB0CA25C761B308EF53009F71

01F7C62621216D5A572C379A32AC290

[AC-pkey-public-key-key1]E55B394A217DA38B65B77F0185C8DB8095522D1EF044B465E

8716261214A5A3B493E866991113B2D

[AC-pkey-public-key-key1]485348

[AC-pkey-public-key-key1] peer-public-key end

# 配置SSH2协议所使用的主机签名算法为dsa

[AC] ssh2 algorithm public-key dsa

[AC] quit

# 建立到服务器192.168.1.40的SSH连接,并指定服务器端的主机公钥。

<AC> ssh2 192.168.1.40 public-key key1

Username: client001

Press CTRL+C to abort.

Connecting to 192.168.1.40 port 22.

client001@192.168.1.40's password:

Enter a character ~ and a dot to abort.

 

******************************************************************************

* Copyright (c) 2004-2017 New H3C Technologies Co., Ltd. All rights reserved.*

* Without the owner's prior written consent,                                 *

* no decompiling or reverse-engineering shall be allowed.                    *

******************************************************************************

 

<Switch>

输入正确的密码之后,即可成功登录到Switch B上。

¡     客户端本地已有服务器端的主机公钥,直接与服务器建立连接

<AC> ssh2 192.168.1.40

Username: client001

Press CTRL+C to abort.

Connecting to 192.168.1.40 port 22.

client001@192.168.1.40's password:

Enter a character ~ and a dot to abort.

 

******************************************************************************

* Copyright (c) 2004-2017 New H3C Technologies Co., Ltd. All rights reserved.*

* Without the owner's prior written consent,                                 *

* no decompiling or reverse-engineering shall be allowed.                    *

******************************************************************************

 

<Switch>

输入正确的密码之后,即可成功登录到Switch上。

1.8.4  设备作为Stelnet客户端配置举例(publickey认证)

1. 组网需求

·     配置AC作为Stelnet客户端,用户能够通过AC安全地登录到Switch上,并被授予用户角色network-admin进行配置管理。

·     Switch作为Stelnet服务器采用publickey认证方式对Stelnet客户端进行认证,使用的公钥算法为DSA。

2. 组网图

图1-12 设备作为Stelnet客户端配置组网图

3. 配置步骤

说明

在服务器的配置过程中需要指定客户端的公钥信息,因此需要首先完成客户端密钥对的配置,再进行服务器的配置。

 

(1)     配置Stelnet客户端

# 配置VLAN接口2的IP地址。

<AC> system-view

[AC] interface vlan-interface 2

[AC-Vlan-interface2] ip address 192.168.1.56 255.255.255.0

[AC-Vlan-interface2] quit

# 生成DSA密钥对。

[AC] public-key local create dsa

The range of public key modulus is (512 ~ 2048).

If the key modulus is greater than 512, it will take a few minutes.

Press CTRL+C to abort.

Input the modulus length [default = 1024]:

Generating Keys...

.

Create the key pair successfully.

# 将生成的DSA主机公钥导出到指定文件key.pub中。

[AC] public-key local export dsa ssh2 key.pub

[AC] quit

客户端生成密钥对后,需要将保存的公钥文件key.pub通过FTP/TFTP方式上传到服务器,具体过程略。

(2)     配置Stelnet服务器

# 生成RSA密钥对。

<Switch> system-view

[Switch] public-key local create rsa

The range of public key modulus is (512 ~ 2048)

If the key modulus is greater than 512, it will take a few minutes.

Press CTRL+C to abort.

Input the modulus length [default = 1024]:

Generating Keys...

.

Create the key pair successfully.

# 生成DSA密钥对。

[Switch] public-key local create dsa

The range of public key modulus is (512 ~ 2048).

If the key modulus is greater than 512, it will take a few minutes.

Press CTRL+C to abort.

Input the modulus length [default = 1024]:

Generating Keys...

.

Create the key pair successfully.

# 生成ECDSA密钥对。

[Switch] public-key local create ecdsa secp256r1

Generating Keys...

.

Create the key pair successfully.

# 使能Stelnet服务器功能。

[Switch] ssh server enable

# 配置VLAN接口2的IP地址,客户端将通过该地址连接SSH服务器。

[Switch] interface vlan-interface 2

[Switch-Vlan-interface2] ip address 192.168.1.40 255.255.255.0

[Switch-Vlan-interface2] quit

# 设置Stelnet客户端登录用户线的认证方式为AAA认证。

[Switch] line vty 0 63

[Switch-line-vty0-63] authentication-mode scheme

[Switch-line-vty0-63] quit

# 从文件key.pub中导入远端的公钥,并命名为ackey。

[Switch] public-key peer ackey import sshkey key.pub

# 设置SSH用户client002的认证方式为publickey,并指定公钥为ackey。

[Switch] ssh user client002 service-type stelnet authentication-type publickey assign publickey ackey

# 创建设备管理类本地用户client002,并设置服务类型为SSH,用户角色为network-admin。

[Switch] local-user client002 class manage

[Switch-luser-manage-client002] service-type ssh

[Switch-luser-manage-client002] authorization-attribute user-role network-admin

[Switch-luser-manage-client002] quit

(3)     Stelnet客户端建立与Stelnet服务器的连接

# 建立到服务器192.168.1.40的SSH连接。

<AC> ssh2 192.168.1.40

Username: client002

Press CTRL+C to abort.

Connecting to 192.168.1.40 port 22.

The server is not authenticated. Continue? [Y/N]:y

Do you want to save the server public key? [Y/N]:n

Enter a character ~ and a dot to abort.

 

******************************************************************************

* Copyright (c) 2004-2017 New H3C Technologies Co., Ltd. All rights reserved.*

* Without the owner's prior written consent,                                 *

* no decompiling or reverse-engineering shall be allowed.                    *

******************************************************************************

 

<Switch>

由于本地未保存服务器端的主机公钥,因此在选择继续访问服务器之后,即可成功登录到Switch B上。

1.9  SFTP典型配置举例

1.9.1  设备作为SFTP服务器配置举例(password认证)

1. 组网需求

·     AC 1和AC 2之间建立SSH连接,AC 1作为SFTP客户端登录到AC 2,并被授予用户角色network-admin进行文件管理和文件传送等操作;

·     AC 2采用password认证方式对SFTP客户端进行认证,客户端的用户名和密码保存在本地。

2. 组网图

图1-13 设备作为SFTP服务器配置组网图

3. 配置步骤

(1)     配置SFTP服务器

# 生成RSA密钥对。

<AC2> system-view

[AC2] public-key local create rsa

The range of public key modulus is (512 ~ 2048).

If the key modulus is greater than 512, it will take a few minutes.

Press CTRL+C to abort.

Input the modulus length [default = 1024]:

Generating Keys...

.

Create the key pair successfully.

# 生成DSA密钥对。

[AC2] public-key local create dsa

The range of public key modulus is (512 ~ 2048).

If the key modulus is greater than 512, it will take a few minutes.

Press CTRL+C to abort.

Input the modulus length [default = 1024]:

Generating Keys...

.

Create the key pair successfully.

# 生成ECDSA密钥对。

[AC2] public-key local create ecdsa secp256r1

Generating Keys...

.

Create the key pair successfully.

# 启动SFTP服务器。

[AC2] sftp server enable

# 配置VLAN接口2的IP地址,客户端将通过该地址连接SSH服务器。

[AC2] interface vlan-interface 2

[AC2-Vlan-interface2] ip address 192.168.1.45 255.255.255.0

[AC2-Vlan-interface2] quit

# 创建设备管理类本地用户client002,并设置密码为明文aabbcc,服务类型为SSH,用户角色为network-admin,工作目录为cfa0:/。

[AC2] local-user client002 class manage

[AC2-luser-manage-client002] password simple aabbcc

[AC2-luser-manage-client002] service-type ssh

[AC2-luser-manage-client002] authorization-attribute user-role network-admin work-directory cfa0:/

[AC2-luser-manage-client002] quit

# 配置SSH用户认证方式为password,服务类型为SFTP。(此步骤可以不配置)

[AC2] ssh user client002 service-type sftp authentication-type password

(2)     SFTP客户端建立与SFTP服务器的连接

说明

·     SFTP客户端软件有很多,本文中仅以客户端软件PuTTY0.58中的PSFTP为例,说明SFTP客户端的配置方法。

·     PSFTP只支持password认证,不支持publickey认证。

 

# 建立与SFTP服务器的连接。

打开psftp.exe程序,出现如图1-14所示的客户端配置界面。输入如下命令:

open 192.168.1.45

根据提示输入用户名client002,密码aabbcc,即可登录SFTP服务器。

图1-14 SFTP客户端登录界面

 

1.9.2  设备作为SFTP客户端配置举例(publickey认证)

1. 组网需求

·     配置AC 1作为SFTP客户端,用户能够通过AC 1安全地登录到AC 2上,并被授予用户角色network-admin进行文件管理和文件传送等操作。

·     AC 2作为SFTP服务器采用publickey认证方式对SFTP客户端进行认证,使用的公钥算法为RSA。

2. 组网图

图1-15 设备作为SFTP客户端配置组网图

3. 配置步骤

说明

在服务器的配置过程中需要指定客户端的公钥信息,因此建议首先完成客户端密钥对的配置,再进行服务器的配置。

 

(1)     配置SFTP客户端

# 配置VLAN接口2的IP地址。

<AC1> system-view

[AC1] interface vlan-interface 2

[AC1-Vlan-interface2] ip address 192.168.0.2 255.255.255.0

[AC1-Vlan-interface2] quit

# 生成RSA密钥对。

[AC1] public-key local create rsa

The range of public key modulus is (512 ~ 2048).

If the key modulus is greater than 512, it will take a few minutes.

Press CTRL+C to abort.

Input the modulus length [default = 1024]:

Generating Keys...

.

Create the key pair successfully.

# 将生成的RSA主机公钥导出到指定文件pubkey中。

[AC1] public-key local export rsa ssh2 pubkey

[AC1] quit

客户端生成密钥对后,需要将保存的公钥文件pubkey通过FTP/TFTP方式上传到服务器,具体过程略。

(2)     配置SFTP服务器

# 生成RSA密钥对。

<AC2> system-view

[AC2] public-key local create rsa

The range of public key modulus is (512 ~ 2048).

If the key modulus is greater than 512, it will take a few minutes.

Press CTRL+C to abort.

Input the modulus length [default = 1024]:

Generating Keys...

.

Create the key pair successfully.

# 生成DSA密钥对。

[AC2] public-key local create dsa

The range of public key modulus is (512 ~ 2048).

If the key modulus is greater than 512, it will take a few minutes.

Press CTRL+C to abort.

Input the modulus length [default = 1024]:

Generating Keys...

.

Create the key pair successfully.

# 生成ECDSA密钥对。

[AC2] public-key local create ecdsa secp256r1

Generating Keys...

.

Create the key pair successfully.

# 启动SFTP服务器。

[AC2] sftp server enable

# 配置VLAN接口2的IP地址,客户端将通过该地址连接SSH服务器。

[AC2] interface vlan-interface 2

[AC2-Vlan-interface2] ip address 192.168.0.1 255.255.255.0

[AC2-Vlan-interface2] quit

# 从文件pubkey中导入远端的公钥,并命名为switchkey。

[AC2] public-key peer switchkey import sshkey pubkey

# 设置SSH用户client001的服务类型为SFTP,认证方式为publickey,并指定公钥为switchkey。

[AC2] ssh user client001 service-type sftp authentication-type publickey assign publickey switchkey

# 创建设备管理类本地用户client001,并设置服务类型为SSH,用户角色为network-admin,工作目录为cfa0:/。

[AC2] local-user client001 class manage

[AC2-luser-manage-client001] service-type ssh

[AC2-luser-manage-client001] authorization-attribute user-role network-admin work-directory cfa0:/

[AC2-luser-manage-client001] quit

(3)     SFTP客户端建立与SFTP服务器端的连接

# 与远程SFTP服务器建立连接,进入SFTP客户端视图。

<AC1> sftp 192.168.0.1 identity-key rsa

Username: client001

Press CTRL+C to abort.

Connecting to 192.168.0.1 port 22.

The server is not authenticated. Continue? [Y/N]:y

Do you want to save the server public key? [Y/N]:n

sftp>

# 显示服务器的当前目录,删除文件z,并检查此文件是否删除成功。

sftp> dir -l

-rwxrwxrwx   1 noone    nogroup      1759 Aug 23 06:52 config.cfg

-rwxrwxrwx   1 noone    nogroup       225 Aug 24 08:01 pubkey2

-rwxrwxrwx   1 noone    nogroup       283 Aug 24 07:39 pubkey

drwxrwxrwx   1 noone    nogroup         0 Sep 01 06:22 new

-rwxrwxrwx   1 noone    nogroup       225 Sep 01 06:55 pub

-rwxrwxrwx   1 noone    nogroup         0 Sep 01 08:00 z

sftp> delete z

Removing /z

sftp> dir -l

-rwxrwxrwx   1 noone    nogroup      1759 Aug 23 06:52 config.cfg

-rwxrwxrwx   1 noone    nogroup       225 Aug 24 08:01 pubkey2

-rwxrwxrwx   1 noone    nogroup       283 Aug 24 07:39 pubkey

drwxrwxrwx   1 noone    nogroup         0 Sep 01 06:22 new

-rwxrwxrwx   1 noone    nogroup       225 Sep 01 06:55 pub

# 新增目录new1,并检查新目录是否创建成功。

sftp> mkdir new1

sftp> dir -l

-rwxrwxrwx   1 noone    nogroup      1759 Aug 23 06:52 config.cfg

-rwxrwxrwx   1 noone    nogroup       225 Aug 24 08:01 pubkey2

-rwxrwxrwx   1 noone    nogroup       283 Aug 24 07:39 pubkey

drwxrwxrwx   1 noone    nogroup         0 Sep 01 06:22 new

-rwxrwxrwx   1 noone    nogroup       225 Sep 01 06:55 pub

drwxrwxrwx   1 noone    nogroup         0 Sep 02 06:30 new1

# 将目录名new1更名为new2,并查看是否更名成功。

sftp> rename new1 new2

sftp> dir -l

-rwxrwxrwx   1 noone    nogroup      1759 Aug 23 06:52 config.cfg

-rwxrwxrwx   1 noone    nogroup       225 Aug 24 08:01 pubkey2

-rwxrwxrwx   1 noone    nogroup       283 Aug 24 07:39 pubkey

drwxrwxrwx   1 noone    nogroup         0 Sep 01 06:22 new

-rwxrwxrwx   1 noone    nogroup       225 Sep 01 06:55 pub

drwxrwxrwx   1 noone    nogroup         0 Sep 02 06:33 new2

# 从服务器上下载文件pubkey2到本地,并更名为public。

sftp> get pubkey2 public

Fetching / pubkey2 to public

/pubkey2                                  100% 225     1.4KB/s   00:00

# 将本地文件pu上传到服务器上,更名为puk,并查看上传是否成功。

sftp> put pu puk

Uploading pu to / puk

sftp> dir -l

-rwxrwxrwx   1 noone    nogroup      1759 Aug 23 06:52 config.cfg

-rwxrwxrwx   1 noone    nogroup       225 Aug 24 08:01 pubkey2

-rwxrwxrwx   1 noone    nogroup       283 Aug 24 07:39 pubkey

drwxrwxrwx   1 noone    nogroup         0 Sep 01 06:22 new

drwxrwxrwx   1 noone    nogroup         0 Sep 02 06:33 new2

-rwxrwxrwx   1 noone    nogroup       283 Sep 02 06:35 pub

-rwxrwxrwx   1 noone    nogroup       283 Sep 02 06:36 puk

sftp>

# 退出SFTP客户端视图。

sftp> quit

<AC1>

1.10  SCP典型配置举例

1.10.1  SCP文件传输配置举例(password认证)

1. 组网需求

图1-16所示,AC 1作为SCP客户端,AC 2作为SCP服务器。现有如下具体需求:

·     用户能够通过AC 1安全地安全地登录到AC 2上,并被授予用户角色network-admin与AC 2进行文件传输。

·     AC 2采用password认证对SCP客户端进行认证,客户端的用户名和密码保存在AC 2上。

2. 组网图

图1-16 SCP文件传输配置组网图

3. 配置步骤

(1)     配置SCP服务器

# 生成RSA密钥对。

<AC2> system-view

[AC2] public-key local create rsa

The range of public key modulus is (512 ~ 2048).

If the key modulus is greater than 512, it will take a few minutes.

Press CTRL+C to abort.

Input the modulus length [default = 1024]:

Generating Keys...

.

Create the key pair successfully.

# 生成DSA密钥对。

[AC2] public-key local create dsa

The range of public key modulus is (512 ~ 2048).

If the key modulus is greater than 512, it will take a few minutes.

Press CTRL+C to abort.

Input the modulus length [default = 1024]:

Generating Keys...

.

Create the key pair successfully.

# 生成ECDSA密钥对。

[AC2] public-key local create ecdsa secp256r1

Generating Keys...

.

Create the key pair successfully.

# 使能SCP服务器功能。

[AC2] scp server enable

# 配置接口VLAN接口2的IP地址,客户端将通过该地址连接SCP服务器。

[AC2] interface vlan-interface 2

[AC2-Vlan-interface2] ip address 192.168.0.1 255.255.255.0

[AC2-Vlan-interface2] quit

# 创建设备管理类本地用户client001,并设置密码为明文aabbcc,服务类型为SSH。

[AC2] local-user client001 class manage

[AC2-luser-manage-client001] password simple aabbcc

[AC2-luser-manage-client001] service-type ssh

[AC2-luser-manage-client001] authorization-attribute user-role network-admin

[AC2-luser-manage-client001] quit

# 配置SSH用户client001的服务类型为scp,认证方式为password认证。(此步骤可以不配置)

[AC2] ssh user client001 service-type scp authentication-type password

(2)     配置SCP客户端

# 配置接口VLAN 2的IP地址。

<AC1> system-view

[AC1] interface vlan-interface 2

[AC1-Vlan-interface2] ip address 192.168.0.2 255.255.255.0

[AC1-Vlan-interface2] quit

[AC1] quit

(3)     SCP客户端从SCP服务器下载文件

# 与远程SCP服务器建立连接,并下载远端的remote.bin文件,下载到本地后更名为local.bin。

<AC1> scp 192.168.0.1 get remote.bin local.bin

Username: client001

Press CTRL+C to abort.

Connecting to 192.168.0.1 port 22.

The server is not authenticated. Continue? [Y/N]:y

Do you want to save the server public key? [Y/N]:n

client001@192.168.0.1’s password:

remote.bin                                       100% 2875     2.8KB/s   00:00

1.11  NETCONF over SSH典型配置举例

1.11.1  NETCONF over SSH配置举例(password认证)

1. 组网需求

·     用户可以通过Client上运行的支持NETCONF over SSH连接的SSH客户端软件(SSH2版本)安全地登录到AC上,并被授予用户角色network-admin进行配置管理。

·     AC采用password认证方式对SSH客户端进行认证,客户端的用户名和密码保存在本地。

·     用户登录时的登录用户名为client001,密码为aabbcc。

2. 组网图

图1-17 设备作为NETCONF over SSH服务器配置组网图

3. 配置步骤

# 生成RSA密钥对。

<AC> system-view

[AC] public-key local create rsa

The range of public key modulus is (512 ~ 2048).

If the key modulus is greater than 512, it will take a few minutes.

Press CTRL+C to abort.

Input the modulus length [default = 1024]:

Generating Keys...

.

Create the key pair successfully.

# 生成DSA密钥对。

[AC] public-key local create dsa

The range of public key modulus is (512 ~ 2048).

If the key modulus is greater than 512, it will take a few minutes.

Press CTRL+C to abort.

Input the modulus length [default = 1024]:

Generating Keys...

.

Create the key pair successfully.

# 生成ECDSA密钥对。

[AC] public-key local create ecdsa secp256r1

Generating Keys...

.

Create the key pair successfully.

# 开启NETCONF over SSH服务器功能。

[AC] netconf ssh server enable

# 配置VLAN接口2的IP地址,客户端将通过该地址连接NETCONF over SSH服务器。

[AC] interface vlan-interface 2

[AC-Vlan-interface2] ip address 192.168.100.49 255.255.255.0

[AC-Vlan-interface2] quit

# 设置NETCONF over SSH客户端登录用户线的认证方式为AAA认证。

[AC] line vty 0 31

[AC-line-vty0-31] authentication-mode scheme

[AC-line-vty0-31] quit

# 创建设备管理类本地用户client001,并设置密码为明文aabbcc,服务类型为SSH,用户角色为network-admin。

[AC] local-user client001 class manage

[AC-luser-manage-client001] password simple aabbcc

[AC-luser-manage-client001] service-type ssh

[AC-luser-manage-client001] authorization-attribute user-role network-admin

[AC-luser-manage-client001] quit

# 配置SSH用户client001的服务类型为NETCONF,认证方式为password认证。(此步骤可以不配置)

[AC] ssh user client001 service-type netconf authentication-type password

4. 验证配置

用户通过支持NETCONF over SSH连接的客户端软件与AC建立NETCONF over SSH连接之后,可直接进入AC的NETCONF配置模式。

# 打开支持NETCONF over SSH登录方式的客户端软件,本文以NetConf Browser 2015(Version3.1)工具为例。

# 在菜单栏中选择“File> Connect…”。

·     “NETCONF version”选择“1.0”。

·     “Host”文本框处输入设备IP“192.168.100.49”。

·     “Port”文本框处输入“830”。

·     “Username”文本框处输入“client001”。

·     单击“Connect”按钮完成设置。

图1-18 通过NetConf Browser连接设备

 

 

图1-19 输入密码:aabbcc。

 

图1-20 登录成功

 

与Device建立NETCONF over SSH连接之后,直接进入Device的NETCONF配置模式。用户登录时获得network-admin权限,例如:

# 在NetConf Browser的“Command XML”区域输入以下信息,并点击Send:

<get-sessions/>

# 在“Output XML”区域显示NETCONF用户的会话信息。

<?xml version="1.0" encoding="utf-8"?>

<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="2">

  <get-sessions>

    <Session>

      <SessionID>1</SessionID>

      <Line>vty1</Line>

      <UserName>client001</UserName>

      <Since>2016-02-03T15:05:30</Since>

      <LockHeld>false</LockHeld>

    </Session>

  </get-sessions>

</rpc-reply>

 

不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!

新华三官网
联系我们