10-SSH配置
本章节下载: 10-SSH配置 (552.97 KB)
目 录
1.3.2 配置Stelnet客户端发送SSH报文使用的源IP地址
1.4.2 配置SFTP客户端发送SFTP报文使用的源IP地址
1.7.1 设备作为Stelnet服务器配置举例(password认证)
1.7.2 设备作为Stelnet服务器配置举例(publickey认证)
1.7.3 设备作为Stelnet客户端配置举例(password认证)
1.7.4 设备作为Stelnet客户端配置举例(publickey认证)
1.8.1 设备作为SFTP服务器配置举例(password认证)
1.8.2 设备作为SFTP客户端配置举例(publickey认证)
1.10.1 NETCONF over SSH配置举例(password认证)
设备运行于FIPS模式时,本特性的相关配置相对于非FIPS模式有所变化,具体差异请见本文相关描述。有关FIPS模式的详细介绍请参见“安全配置指导”中的“FIPS”。
SSH是Secure Shell(安全外壳)的简称,是一种在不安全的网络环境中,通过加密机制和认证机制,实现安全的远程访问以及文件传输等业务的网络安全协议。
SSH协议采用了典型的客户端/服务器模式,并基于TCP协议协商建立用于保护数据传输的会话通道。SSH协议有两个版本,SSH1.x和SSH2.0(本文简称SSH1和SSH2),两者互不兼容。SSH2在性能和安全性方面比SSH1有所提高。
设备既可以支持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服务器时,非FIPS模式下支持SSH2和SSH1两个版本,FIPS模式下只支持SSH2版本;设备作为SSH客户端时,只支持SSH2版本;设备作为NETCONF over SSH服务器端时,只支持SSH2版本。
本小节以SSH2为例介绍SSH工作的过程,具体分为表1-1所述的几个阶段,关于各阶段的详细介绍,请参见“SSH技术白皮书”。
表1-1 SSH工作过程
SSH服务器在22号端口侦听客户端的连接请求,在客户端向服务器端发起连接请求后,双方建立一个TCP连接 |
|
SSH支持多种算法,双方根据本端和对端支持的算法,协商出最终用于产生会话密钥的密钥交换算法、用于数据信息加密的加密算法、用于进行数字签名和认证的公钥算法,以及用于数据完整性保护的HMAC算法 |
|
双方通过DH(Diffie-Hellman Exchange)交换,动态地生成用于保护数据传输的会话密钥和用来标识该SSH连接的会话ID,并完成客户端对服务器端的身份认证 |
|
SSH客户端向服务器端发起认证请求,服务器端对客户端进行认证 |
|
认证通过后,SSH客户端向服务器端发送会话请求,请求服务器提供某种类型的服务(目前支持Stelnet、SFTP、SCP、NETCONF),即请求与服务器建立相应的会话 |
|
会话建立后,SSH服务器端和客户端在该会话上进行数据信息的交互 该阶段,用户在客户端可以通过粘贴文本内容的方式执行命令,但文本会话不能超过2000字节,且粘贴的命令最好是同一视图下的命令,否则服务器可能无法正确执行该命令。如果粘贴的文本会话超过2000字节,可以采用将配置文件通过SFTP方式上传到服务器,利用新的配置文件重新启动的方式执行这些命令 |
设备作为SSH服务器可提供以下四种对客户端的认证方式:
· password认证:利用AAA(Authentication、Authorization、Accounting,认证、授权和计费)对客户端身份进行认证。客户端向服务器发出password认证请求,将用户名和密码加密后发送给服务器;服务器将认证请求解密后得到用户名和密码的明文,通过本地认证或远程认证验证用户名和密码的合法性,并返回认证成功或失败的消息。
· publickey认证:采用数字签名的方式来认证客户端。目前,设备上可以利用DSA、RSA或ECDSA三种公钥算法实现数字签名。客户端发送包含用户名、公钥和公钥算法或者携带公钥信息的数字证书的publickey认证请求给服务器端。服务器对公钥进行合法性检查,如果不合法,则直接发送失败消息;否则,服务器利用数字签名对客户端进行认证,并返回认证成功或失败的消息。
· password-publickey认证:对于SSH2版本的客户端,要求同时进行password和publickey两种方式的认证,且只有两种认证均通过的情况下,才认为客户端身份认证通过;对于SSH1版本的客户端,只要通过其中任意一种认证即可。
· any认证:不指定客户端的认证方式,客户端可采用password认证或publickey认证,且只要通过其中任何一种认证即可。
关于AAA以及公钥相关内容的介绍请分别参考“安全配置指导”中的“AAA”和“公钥管理”。
· 客户端进行password认证时,如果远程认证服务器要求用户进行二次密码认证,则会在发送给服务器端的认证回应消息中携带一个提示信息,该提示信息被服务器端透传给客户端,由客户端输出并要求用户再次输入一个指定类型的密码,当用户提交正确的密码并成功通过认证服务器的验证后,服务器端才会返回认证成功的消息。
· SSH1版本的SSH客户端不支持AAA服务器发起的二次密码认证。
通过执行以下配置任务,可配置设备作为Stelnet、SFTP或SCP服务器。由于Stelnet、SFTP和SCP服务器的配置基本相同,因此除非特殊说明,本小节中使用SSH服务器作为Stelnet、SFTP和SCP服务器的统称。
表1-2 SSH服务器配置任务简介
使能SSH服务器功能 |
仅对于Stelnet和SCP服务器必选 |
|
使能SFTP服务器功能 |
仅对于SFTP服务器必选 |
|
使能NETCONF over SSH服务器功能 |
对NETCONF over SSH服务器必选 |
|
配置SSH客户端登录时使用的用户线 |
仅对Stelnet客户端和NETCONF over SSH客户端必选 |
|
采用publickey、password-publickey或any认证方式时必选 |
||
采用publickey认证方式且客户端使用证书认证时必选 该PKI域中必须保存了用于认证客户端证书的CA证书 |
||
配置SSH用户 |
采用publickey、password-publickey或any认证方式时必选 采用password认证方式时可选 |
|
配置SSH管理功能 |
· 仅Release 2311P04及以上版本,SSH支持ECDSA密钥对。
· 设备运行于FIPS模式时,服务器端仅支持RSA和ECDSA密钥对,因此请不要生成本地的DSA密钥对,否则会导致用户认证失败。
服务器端的非对称密钥对有两个用途,其一是用于在密钥交换阶段生成会话密钥和会话ID,另外一个是客户端用它来对连接的服务器进行认证。客户端验证服务器身份时,首先判断服务器发送的公钥与本地保存的服务器公钥是否一致,确认服务器公钥正确后,再使用该公钥对服务器发送的数字签名进行验证。
虽然一个客户端只会采用DSA、RSA或ECDSA公钥算法中的一种来认证服务器,但是由于不同客户端支持的公钥算法不同,为了确保客户端能够成功登录服务器,建议在服务器上同时生成DSA、RSA或ECDSA密钥对。
· 生成RSA密钥对时,将同时生成两个密钥对——服务器密钥对和主机密钥对。SSH1利用SSH服务器端的服务器公钥加密会话密钥,以保证会话密钥传输的安全;SSH2通过DH算法在SSH服务器和SSH客户端上生成会话密钥,不需要传输会话密钥,因此SSH2中没有利用服务器密钥对。
· 生成DSA密钥对时,只生成一个主机密钥对。SSH1不支持DSA算法。
· 生成ECDSA密钥对时,只生成一个主机密钥对。
服务器端生成本地DSA、RSA或ECDSA密钥对,需要注意的是:
· SSH仅支持默认名称的本地DSA、RSA或ECDSA密钥对,不支持指定名称的本地DSA、RSA或ECDSA密钥对。关于密钥对生成命令的相关介绍请参见“安全命令参考”中的“公钥管理”。
· 生成DSA密钥对时,要求输入的密钥模数的长度必须小于2048比特。
· 生成ECDSA密钥对时,要求必须采用名称为secp256r1的椭圆曲线生成本地ECDSA密钥对。
生成本地非对称密钥对(适用于Release 2308P01、Release 2310版本) |
||
生成本地非对称密钥对(适用于Release 2311P04及以上版本) |
public-key local create { dsa | ecdsa secp256r1 | rsa } |
缺省情况下,不存在任何本地非对称密钥对 |
对于Release 2311P04及以上版本,在设备上执行SSH服务器端相关配置命令后,SSH进程启动。此时,如果未通过public-key local create 命令手动创建密钥对,设备会自动创建RSA密钥对。
该配置任务用于使能设备上的SSH服务器功能,使客户端能采用SSH协议与设备进行通信。
设备作为SSH服务器时,不支持SSH1版本的客户端发起的SFTP连接或SCP连接。
表1-4 使能SSH服务器功能
使能SSH服务器功能 |
缺省情况下,SSH服务器功能处于关闭状态 |
该配置任务用于使能设备上的SFTP服务器功能,使客户端能采用SFTP的方式登录到设备。
表1-5 启动SFTP服务器功能
使能SFTP服务器功能 |
缺省情况下,SFTP服务器处于关闭状态 |
仅Release 2311P04及以上版本支持此功能。
该配置任务用于使能设备上的NETCONF over SSH服务器功能,使得客户端能够使用支持NETCONF over SSH登录方式的客户端配置工具给设备下发NETCONF指令来实现对设备的访问。
设备作为NETCONF over SSH服务器时,不支持SSH1版本的客户端发起的SSH连接。
关于NETCONF over SSH服务器相关命令的详细介绍,请见“网络管理和监控命令参考”中的“NETCONF”。
使能NETCONF over SSH服务器功能 |
缺省情况下,NETCONF over SSH服务器处于关闭状态 |
|
指定NETCONF over SSH的监听端口 |
缺省情况下,NETCONF over SSH使用端口830 |
设备支持的SSH客户端根据不同的应用可分为:Stelnet客户端、SFTP客户端、SCP客户端和NETCONF over SSH客户端。
· Stelnet客户端和NETCONF over SSH客户端通过VTY(Virtual Type Terminal,虚拟类型终端)用户线访问设备。因此,需要配置客户端登录时采用的VTY用户线,使其支持SSH远程登录协议。配置将在客户端下次登录时生效。
· SFTP客户端和SCP客户端不通过用户线访问设备,不需要配置登录时采用的VTY用户线。
表1-7 配置SSH客户端登录时使用的用户线
进入VTY用户线视图 |
line vty number [ ending-number ] |
|
配置登录用户线的认证方式为scheme方式 |
服务器在采用publickey方式验证客户端身份时,首先比较客户端发送的SSH用户名、主机公钥是否与本地配置的SSH用户名以及相应的客户端主机公钥一致,在确认用户名和客户端主机公钥正确后,对客户端发送的数字签名进行验证,该签名是客户端利用主机公钥对应的私钥计算出的。因此,在采用publickey、password-publickey或any认证方式时,需要在服务器端配置客户端的DSA、RSA或ECDSA主机公钥,并在客户端为该SSH用户指定与主机公钥对应的DSA、RSA或ECDSA主机私钥(若设备作为客户端,则在向服务器发起连接时通过指定公钥算法来实现)。
服务器端可以通过手工配置和从公钥文件中导入两种方式来配置客户端的公钥:
· 手工配置:事先在客户端上通过显示命令或其它方式查看其公钥信息,并记录客户端主机公钥的内容,然后采用手工输入的方式将客户端的公钥配置到服务器上。手工输入远端主机公钥时,可以逐个字符输入,也可以一次拷贝粘贴多个字符。这种方式要求手工输入或拷贝粘贴的主机公钥必须是未经转换的DER(Distinguished Encoding Rules,特异编码规则)公钥编码格式。
· 从公钥文件中导入:事先将客户端的公钥文件保存到服务器上(例如,通过FTP或TFTP,以二进制方式将客户端的公钥文件保存到服务器),服务器从本地保存的该公钥文件中导入客户端的公钥。导入公钥时,系统会自动将客户端公钥文件转换为PKCS(Public Key Cryptography Standards,公共密钥加密标准)编码形式。
手工配置客户端的公钥时,输入的主机公钥必须满足一定的格式要求。通过display public-key local public命令显示的公钥可以作为输入的公钥内容;通过其他方式(如public-key local export命令)显示的公钥可能不满足格式要求,导致主机公钥保存失败。因此,建议选用从公钥文件导入的方式配置远端主机的公钥。
SSH服务器上配置的SSH客户端公钥数目建议不要超过20个。
public-key peer keyname |
||
在输入公钥内容时,字符之间可以有空格,也可以按回车键继续输入数据, 保存公钥数据时,将删除空格和回车符 |
||
public-key peer keyname import sshkey filename |
本配置用于创建SSH用户,并指定SSH用户的服务类型、认证方式以及对应的客户端公钥或数字证书。SSH用户的配置与服务器端采用的认证方式有关,具体如下:
· 如果服务器采用了publickey认证,则必须在设备上创建相应的SSH用户,以及同名的本地用户(用于下发授权属性:工作目录、用户角色)。
· 如果服务器采用了password认证,则必须在设备上创建相应的本地用户(适用于本地认证),或在远程服务器(如RADIUS服务器,适用于远程认证)上创建相应的SSH用户。这种情况下,并不需要通过本配置创建相应的SSH用户,如果创建了SSH用户,则必须保证指定了正确的服务类型以及认证方式。
· 如果服务器采用了password-publickey或any认证,则必须在设备上创建相应的SSH用户,以及在设备上创建同名的本地用户(适用于本地认证)或者在远程认证服务器上创建同名的SSH用户(如RADIUS服务器,适用于远程认证)。
配置SSH用户时,需要注意:
· SCP或SFTP用户登录时使用的工作目录与用户使用的认证方式有关。通过publickey或password-publickey认证登录服务器的用户使用的工作目录均为对应的本地用户视图下为该用户设置的工作目录;通过password认证登录服务器的用户,使用的工作目录为通过AAA授权的工作目录。
· 通过publickey或password-publickey认证登录服务器的SSH用户将被授予对应的本地用户视图下指定的用户角色;通过password认证登录服务器的SSH用户将被授予远程AAA服务器或设备本地授权的用户角色。
· 对SSH用户配置的修改,不会影响已经登录的SSH用户,仅对新登录的用户生效。
· 除password认证方式外,其它认证方式下均需要指定客户端的公钥或证书。
¡ 对于使用公钥认证的SSH用户,服务器端必须指定客户端的公钥,且指定的公钥必须已经存在,公钥内容的配置请参见“1.2.7 配置客户端的公钥”。
¡ 对于使用证书认证的SSH用户,服务器端必须指定用于验证客户端证书的PKI域,PKI域的配置请参见“安全配置指导”中的“PKI域配置”。为保证SSH用户可以成功通过认证,通过ssh user命令指定的PKI域中必须存在用于验证客户端证书的CA证书。
· FIPS模式下,设备作为SSH服务器不支持any认证和publickey认证方式。
关于本地用户以及远程认证的相关配置请参见“安全配置指导”中的“AAA”。
创建SSH用户,并指定SSH用户的服务类型和认证方式 |
非FIPS模式下: ssh user username service-type { all | netconf | scp | sftp | stelnet } authentication-type { password | { any | password-publickey | publickey } assign { pki-domain domain-name | publickey keyname } } FIPS模式下: ssh user username service-type { all | netconf | scp | sftp | stelnet } authentication-type { password | password-publickey assign { pki-domain domain-name | publickey keyname } } |
SSH服务器上最多可以创建1024个SSH用户 仅Release 2311P04及以上版本支持netconf参数 |
通过配置服务器上的SSH管理功能,可提高SSH连接的安全性。SSH的管理功能包括:
· 设置SSH服务器是否兼容SSH1版本的客户端。
· 设置RSA服务器密钥对的更新时间,此配置仅对SSH客户端版本为SSH1的用户有效,SSH的核心是密钥的协商和传输,因此密钥的管理是非常重要的,可灵活设置更新时间间隔。
· 设置SSH用户认证的超时时间。为了防止不法用户建立起TCP连接后,不进行接下来的认证,而是空占着进程,妨碍其它合法用户的正常登录,可以设置验证超时时间,如果在规定的时间内没有完成认证就拒绝该连接。
· 设置SSH用户请求连接的认证尝试最大次数,限制登录的重试次数,防止非法用户对用户名和密码进行恶意地猜测和破解。在any认证方式下,SSH客户端通过publickey和password两种方式进行认证尝试的次数总和,不能超过配置的SSH连接认证尝试次数。
· 设置对SSH客户端的访问控制,使用ACL过滤向SSH服务器发起连接的SSH客户端。
· 设置SSH服务器向SSH客户端发送的报文的DSCP优先级。DSCP携带在IPv4报文中的ToS字段和IPv6报文中的Trafic class字段,用来体现报文自身的优先等级,决定报文传输的优先程度。
· 设置SFTP用户连接的空闲超时时间。当SFTP用户连接的空闲时间超过设定的阈值后,系统会自动断开此用户的连接,从而有效避免用户长期占用连接而不进行任何操作。
· 设置同时在线的最大SSH用户连接数。系统资源有限,当前在线SSH用户数超过设定的最大值时,系统会拒绝新的SSH连接请求。
表1-11 配置SSH管理功能
设置SSH服务器兼容SSH1版本的客户端 |
缺省情况下,SSH服务器兼容SSH1版本的客户端 FIPS模式下,不支持本命令 |
|
设置RSA服务器密钥对的更新时间 |
缺省情况下,系统不更新RSA服务器密钥对 FIPS模式下,不支持本命令 |
|
设置SSH用户的认证超时时间 |
ssh server authentication-timeout time-out-value |
缺省情况下,SSH用户的认证超时时间为60秒 |
设置SSH认证尝试的最大次数 |
缺省情况下,SSH连接认证尝试的最大次数为3次 |
|
设置对IPv4 SSH用户的访问控制 |
缺省情况下,允许所有IPv4 SSH用户向设备发起SSH访问 |
|
设置对IPv6 SSH用户的访问控制 |
缺省情况下,允许所有IPv6 SSH用户向设备发起SSH访问 |
|
设置Pv4 SSH服务器向SSH客户端发送的报文的DSCP优先级 |
缺省情况下,IPv4 SSH报文的DSCP优先级为48 |
|
设置IPv6 SSH服务器向SSH客户端发送的报文的DSCP优先级 |
缺省情况下,IPv6 SSH报文的DSCP优先级为48 |
|
设置SFTP用户连接的空闲超时时间 |
sftp server idle-timeout time-out-value |
缺省情况下,SFTP用户连接的空闲超时时间为10分钟 |
设置同时在线的最大SSH用户连接数 |
缺省的最大SSH用户连接数为16 |
表1-12 Stelnet客户端配置任务简介
配置Stelnet客户端发送SSH报文使用的源IP地址 |
||
建立与Stelnet服务器端的连接 |
Stelnet客户端与Stelnet服务器通信时,缺省采用路由决定的源IP地址作为发送报文的源地址。如果使用本配置指定了源IP地址,则采用该地址与服务器进行通信。为保证Stelnet客户端与Stelnet服务器通信链路的可达性,以及增加认证业务对SFTP客户端的可管理性,通常建议指定Loopback接口的IP地址作为源IP地址。
表1-13 配置Stelnet客户端发送SSH报文使用的源IP地址
配置Stelnet客户端发送SSH报文使用的源IP地址 |
配置Stelnet客户端发送SSH报文使用的源IPv4地址 |
ssh client source { interface interface-type interface-number | ip ip-address } |
缺省情况下,IPv4 Stelnet客户端采用设备路由指定的SSH报文出接口主IP地址作为源IP地址;IPv6 Stelnet客户端采用设备自动选择的IPv4地址作为源IP地址 |
配置Stelnet客户端发送SSH报文使用的源IPv6地址 |
ssh client ipv6 source { interface interface-type interface-number | ipv6 ipv6-address } |
该配置任务用来启动Stelnet客户端程序,与远程Stelnet服务器建立连接,并指定公钥算法、首选加密算法、首选HMAC算法和首选密钥交换算法等。
Stelnet客户端访问服务器时,需要通过本地保存的服务器端的主机公钥来验证服务器的身份。设备作为Stelnet客户端时,默认支持首次认证,即当Stelnet客户端首次访问服务器,而客户端没有配置服务器端的主机公钥时,用户可以选择继续访问该服务器,并在客户端保存该主机公钥;当用户下次访问该服务器时,就以保存的主机公钥来认证该服务器。首次认证在比较安全的网络环境中可以简化客户端的配置,但由于该方式下客户端完全相信服务器公钥的正确性,因此存在一定的安全隐患。
表1-14 建立与Stelnet服务器的连接
与Stelnet服务器端建立连接 |
与IPv4 Stelnet服务器端建立连接 |
非FIPS模式下: ssh2 server [ port-number ] [ vpn-instance vpn-instance-name ] [ identity-key { dsa | ecdsa | rsa } | prefer-compress zlib | prefer-ctos-cipher { 3des | aes128 | aes256 | des } | prefer-ctos-hmac { md5 | md5-96 | sha1 | sha1-96 } | prefer-kex { dh-group-exchange | dh-group1 | dh-group14 } | prefer-stoc-cipher { 3des | aes128 | aes256 | des } | prefer-stoc-hmac { md5 | md5-96 | sha1 | sha1-96 } ] * [ dscp dscp-value | publickey keyname | source { interface interface-type interface-number | ip ip-address } ] * FIPS模式下: ssh2 server [ port-number ] [ vpn-instance vpn-instance-name ] [ identity-key { ecdsa | rsa } | prefer-compress zlib | prefer-ctos-cipher { aes128 | aes256 } | prefer-ctos-hmac { sha1 | sha1-96 } | prefer-kex dh-group14 | prefer-stoc-cipher { aes128 | aes256 } | prefer-stoc-hmac { sha1 | sha1-96 } ] * [ publickey keyname | source { interface interface-type interface-number | ip ip-address } ] * |
仅Release 2311P04及以上版本支持ecdsa参数 |
与IPv6 Stelnet服务器端建立连接 |
非FIPS模式下: ssh2 ipv6 server [ port-number ] [ vpn-instance vpn-instance-name ] [ -i interface-type interface-number ] [ identity-key { dsa | ecdsa | rsa } | prefer-compress zlib | prefer-ctos-cipher { 3des | aes128 | aes256 | des } | prefer-ctos-hmac { md5 | md5-96 | sha1 | sha1-96 } | prefer-kex { dh-group-exchange | dh-group1 | dh-group14 } | prefer-stoc-cipher { 3des | aes128 | aes256 | des } | prefer-stoc-hmac { md5 | md5-96 | sha1 | sha1-96 } ] * [ dscp dscp-value | publickey keyname | source { interface interface-type interface-number | ipv6 ipv6-address } ] * FIPS模式下: ssh2 ipv6 server [ port-number ] [ vpn-instance vpn-instance-name ] [ -i interface-type interface-number ] [ identity-key { ecdsa | rsa } | prefer-compress zlib | prefer-ctos-cipher { aes128 | aes256 } | prefer-ctos-hmac { sha1 | sha1-96 } | prefer-kex dh-group14 | prefer-stoc-cipher { aes128 | aes256 } | prefer-stoc-hmac { sha1 | sha1-96 } ] * [ publickey keyname | source { interface interface-type interface-number | ipv6 ipv6-address } ] * |
表1-15 SFTP客户端配置任务简介
配置SFTP客户端发送SFTP报文使用的源IP地址 |
||
建立与SFTP服务器端的连接 |
||
SFTP目录操作 |
||
SFTP文件操作 |
||
终止与SFTP服务器端的连接 |
SFTP客户端与SFTP服务器通信时,缺省采用路由决定的源IP地址作为发送报文的源地址。如果使用本配置指定了源IP地址,则采用该地址与服务器进行通信。为保证SFTP客户端与SFTP服务器通信链路的可达性,以及增加认证业务对SFTP客户端的可管理性,通常建议指定Loopback接口的IP地址作为源IP地址。
表1-16 配置SFTP客户端发送SFTP报文使用的源IP地址
配置SFTP客户端发送SFTP报文使用的源IP地址 |
配置SFTP客户端发送SFTP报文使用的源IPv4地址 |
sftp client source { ip ip-address | interface interface-type interface-number } |
缺省情况下,IPv4客户端采用设备路由指定的SFTP报文的出接口主IP地址作为源IP地址;IPv6客户端采用设备自动选择的IPv6地址作为源IP地址 |
配置SFTP客户端发送SFTP报文使用的源IPv6地址 |
sftp client ipv6 source { ipv6 ipv6-address | interface interface-type interface-number } |
该配置任务用来启动SFTP客户端程序,与远程SFTP服务器建立连接,并指定公钥算法、首选加密算法、首选HMAC算法和首选密钥交换算法等。SFTP客户端与服务器成功建立连接之后,用户即可进入到服务器端上的SFTP客户端视图下进行目录、文件等操作。
SFTP客户端访问服务器时,需要通过本地保存的服务器端的主机公钥来验证服务器的身份。设备作为SFTP客户端时,默认支持首次认证,即当SFTP客户端首次访问服务器,而客户端没有配置服务器端的主机公钥时,用户可以选择继续访问该服务器,并在客户端保存该主机公钥;当用户下次访问该服务器时,就以保存的主机公钥来认证该服务器。首次认证在比较安全的网络环境中可以简化客户端的配置,但由于该方式下客户端完全相信服务器公钥的正确性,因此存在一定的安全隐患。
表1-17 建立与SFTP服务器端的连接
与SFTP服务器建立连接,并进入SFTP客户端视图 |
与IPv4 SFTP服务器建立连接,并进入SFTP客户端视图 |
非FIPS模式下: sftp server [ port-number ] [ vpn-instance vpn-instance-name ] [ identity-key { dsa | ecdsa | rsa } | prefer-compress zlib | prefer-ctos-cipher { 3des | aes128 | aes256 | des } | prefer-ctos-hmac { md5 | md5-96 | sha1 | sha1-96 } | prefer-kex { dh-group-exchange | dh-group1 | dh-group14 } | prefer-stoc-cipher { 3des | aes128 | aes256 | des } | prefer-stoc-hmac { md5 | md5-96 | sha1 | sha1-96 } ] * [ dscp dscp-value | publickey keyname | source { interface interface-type interface-number | ip ip-addres} ] * FIPS模式下: sftp server [ port-number ] [ vpn-instance vpn-instance-name ] [ identity-key { ecdsa | rsa } | prefer-compress zlib | prefer-ctos-cipher { aes128 | aes256 } | prefer-ctos-hmac { sha1 | sha1-96 } | prefer-kex dh-group14 | prefer-stoc-cipher { aes128 | aes256 } | prefer-stoc-hmac { sha1 | sha1-96 } ] * [ publickey keyname | source { interface interface-type interface-number | ip ip-address } ] * |
仅Release 2311P04及以上版本支持ecdsa参数 |
与IPv6 SFTP服务器建立连接,并进入SFTP客户端视图 |
非FIPS模式下: sftp ipv6 server [ port-number ] [ vpn-instance vpn-instance-name ] [ -i interface-type interface-number ] [ identity-key { dsa | ecdsa | rsa } | prefer-compress zlib | prefer-ctos-cipher { 3des | aes128 | aes256 | des } | prefer-ctos-hmac { md5 | md5-96 | sha1 | sha1-96 } | prefer-kex { dh-group-exchange | dh-group1 | dh-group14 } | prefer-stoc-cipher { 3des | aes128 | aes256 | des } | prefer-stoc-hmac { md5 | md5-96 | sha1 | sha1-96 } ] * [ dscp dscp-value | publickey keyname | source { interface interface-type interface-number | ipv6 ipv6-addres} ] * FIPS模式下: sftp ipv6 server [ port-number ] [ vpn-instance vpn-instance-name ] [ -i interface-type interface-number ] [ identity-key { ecdsa | rsa } | prefer-compress zlib | prefer-ctos-cipher { aes128 | aes256 } | prefer-ctos-hmac { sha1 | sha1-96 } | prefer-kex dh-group14 | prefer-stoc-cipher { aes128 | aes256 } | prefer-stoc-hmac { sha1 | sha1-96 } ] * [ publickey keyname | source { interface interface-type interface-number | ipv6 ipv6-addres} ] * |
SFTP目录操作包括:改变或显示当前的工作路径、显示指定目录下的文件或目录信息、改变服务器上指定的文件夹的名字、创建或删除目录等操作。
表1-18 SFTP目录操作
进入SFTP客户端视图 |
||
改变远程SFTP服务器上的工作路径 |
||
显示远程SFTP服务器上的当前工作目录 |
||
dir和ls两条命令的作用相同 |
||
改变SFTP服务器上指定的目录的名字 |
||
在远程SFTP服务器上创建新的目录 |
||
删除SFTP服务器上指定的目录 |
rmdir remote-path |
SFTP文件操作包括:改变文件名、下载文件、上传文件、显示文件列表和删除文件。
表1-19 SFTP文件操作
进入SFTP客户端视图 |
||
改变SFTP服务器上指定的文件的名字 |
rename old-name new-name |
|
get remote-file [ local-file ] |
||
put local-file [ remote-file ] |
||
dir [ -a | -l ] [ remote-path ] |
dir和ls两条命令的作用相同 |
|
ls [ -a | -l ] [ remote-path ] |
||
删除SFTP服务器上指定的文件 |
delete remote-file |
delete和remove两条命令的功能相同 |
remove remote-file |
进入SFTP客户端视图 |
||
显示SFTP客户端命令的帮助信息 |
help和?的功能相同 |
|
表1-21 终止与SFTP服务器的连接
进入SFTP客户端视图 |
||
终止与SFTP服务器的连接,并退回用户视图 |
bye,exit和quit三条命令的功能相同 |
|
该配置任务用来启动SCP客户端程序,与远程SCP服务器建立连接,并进行安全的文件传输操作。
SCP客户端访问服务器时,需要通过本地保存的服务器端的主机公钥来验证服务器的身份。设备作为SCP客户端时,默认支持首次认证,即当SCP客户端首次访问服务器,而客户端没有配置服务器端的主机公钥时,用户可以选择继续访问该服务器,并在客户端保存该主机公钥;当用户下次访问该服务器时,就以保存的主机公钥来认证该服务器。首次认证在比较安全的网络环境中可以简化客户端的配置,但由于该方式下客户端完全相信服务器公钥的正确性,因此存在一定的安全隐患。
表1-22 与远程SCP服务器传输文件
与远程SCP服务器建立连接,并进行文件传输 |
与远程IPv4 SCP服务器建立连接,并进行文件传输 |
非FIPS模式下: scp server [ port-number ] [ vpn-instance vpn-instance-name ] { put | get } source-file-name [ destination-file-name ] [ identity-key { dsa | ecdsa | rsa } | prefer-compress zlib | prefer-ctos-cipher { 3des | aes128 | aes256 | des } | prefer-ctos-hmac { md5 | md5-96 | sha1 | sha1-96 } | prefer-kex { dh-group-exchange | dh-group1 | dh-group14 } | prefer-stoc-cipher { 3des | aes128 | aes256 | des } | prefer-stoc-hmac { md5 | md5-96 | sha1 | sha1-96 }] * [ publickey keyname | source { interface interface-type interface-number | ip ip-address } ] * FIPS模式下: scp server [ port-number ] [ vpn-instance vpn-instance-name ] { put | get } source-file-name [ destination-file-name ] [ identity-key { ecdsa | rsa } | prefer-compress zlib | prefer-ctos-cipher { aes128 | aes256 } | prefer-ctos-hmac { sha1 | sha1-96 } | prefer-kex dh-group14 | prefer-stoc-cipher { aes128 | aes256 } | prefer-stoc-hmac { sha1 | sha1-96 }] * [ publickey keyname | source { interface interface-type interface-number | ip ip-address } ] * |
仅Release 2311P04及以上版本支持ecdsa参数 |
与远程IPv6 SCP服务器建立连接,并进行文件传输 |
非FIPS模式下: scp ipv6 server [ port-number ] [ vpn-instance vpn-instance-name ] [ -i interface-type interface-number ] { put | get } source-file-name [ destination-file-name ] [ identity-key { dsa | ecdsa | rsa } | prefer-compress zlib | prefer-ctos-cipher { 3des | aes128 | aes256 | des } | prefer-ctos-hmac { md5 | md5-96 | sha1 | sha1-96 } | prefer-kex { dh-group-exchange | dh-group1 | dh-group14 } | prefer-stoc-cipher { 3des | aes128 | aes256 | des } | prefer-stoc-hmac { md5 | md5-96 | sha1 | sha1-96 }] * [ publickey keyname | source { interface interface-type interface-number | ipv6 ipv6-address } ] * FIPS模式下: scp ipv6 server [ port-number ] [ vpn-instance vpn-instance-name ] [ -i interface-type interface-number ] { put | get } source-file-name [ destination-file-name ] [ identity-key { ecdsa | rsa } | prefer-compress zlib | prefer-ctos-cipher { aes128 | aes256 } | prefer-ctos-hmac { sha1 | sha1-96 } | prefer-kex dh-group14 | prefer-stoc-cipher { aes128 | aes256 } | prefer-stoc-hmac { sha1 | sha1-96 }] * [ publickey keyname | source { interface interface-type interface-number | ipv6 ipv6-address } ] * |
在完成上述配置后,在任意视图下执行display命令,可以显示配置后SSH的运行情况,通过查看显示信息验证配置的效果。
表1-23 SSH显示和维护
显示SFTP客户端的源IP地址配置 |
|
显示Stelnet客户端的源IP地址配置 |
|
在SSH服务器端显示该服务器的状态信息或会话信息 |
display ssh server { session | status } |
在SSH服务器端显示SSH用户信息 |
display ssh user-information [ username ] |
display public-key local { dsa | rsa } public [ name publickey-name ] |
|
display public-key local和display public-key peer命令的详细介绍请参见“安全命令参考”中的“公钥管理”。
举例中的设备运行于非FIPS模式下。若设备运行于FIPS模式下,相关的配置和显示信息会有所变化,请以设备的实际情况为准;设备作为服务器仅支持RSA和ECDSA密钥对。
· 用户可以通过Host上运行的Stelnet客户端软件(SSH2版本)安全地登录到Switch上,并被授予用户角色network-admin进行配置管理;
· Switch采用password认证方式对Stelnet客户端进行认证,客户端的用户名和密码保存在本地。
图1-1 设备作为Stelnet服务器配置组网图
# 生成RSA密钥对。
[Switch] public-key local create rsa
The range of public key size 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 size 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.
# 使能SSH服务器功能。
# 配置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-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
(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,即可进入Switch的配置界面。
举例中的设备运行于非FIPS模式下。若设备运行于FIPS模式下,相关的配置和显示信息会有所变化,请以设备的实际情况为准;设备作为服务器仅支持RSA和ECDSA密钥对。
· 用户可以通过Host上运行的Stelnet客户端软件(SSH2版本)安全地登录到Switch上,并被授予用户角色network-admin进行配置管理;
· Switch采用publickey认证方式对Stelnet客户端进行认证,使用的公钥算法为RSA。
图1-3 设备作为Stelnet服务器配置组网图
· 在服务器的配置过程中需要指定客户端的公钥信息,因此建议首先完成客户端密钥对的配置,再进行服务器的配置。
· 客户端软件有很多,例如PuTTY、OpenSSH等。本文中仅以客户端软件PuTTY0.58为例,说明Stelnet客户端的配置方法。
# 生成RSA密钥对。
在客户端运行PuTTYGen.exe,在参数栏中选择“SSH-2 RSA”,点击<Generate>,产生客户端密钥对。
在产生密钥对的过程中需不停地移动鼠标,鼠标移动仅限于下图蓝色框中除绿色标记进程条外的地方,否则进程条的显示会不动,密钥对将停止产生,见图1-5。
密钥对产生后,点击<Save public key>,输入存储公钥的文件名key.pub,点击<保存>按钮。
点击<Save private key>存储私钥,弹出警告框,提醒是否保存没做任何保护措施的私钥,点击<Yes>,输入私钥文件名为private.ppk,点击保存。
客户端生成密钥对后,需要将保存的公钥文件key.pub通过FTP/TFTP方式上传到服务器,具体过程略。
# 生成RSA密钥对。
[Switch] public-key local create rsa
The range of public key size 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 size 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.
# 使能SSH服务器功能。
# 配置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-vty0-63] authentication-mode scheme
[Switch-line-vty0-63] quit
# 从文件key.pub中导入远端的公钥,并命名为switchkey。
[Switch] public-key peer switchkey import sshkey key.pub
# 设置SSH用户client002的认证方式为publickey,并指定公钥为switchkey。
# 创建设备管理类本地用户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服务器的连接
# 指定私钥文件,并建立与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的配置界面。
· 配置Switch A作为Stelnet客户端,用户能够通过Switch A安全地登录到Switch B上,并被授予用户角色network-admin进行配置管理。
· Switch B作为Stelnet服务器采用password认证方式对Stelnet客户端进行认证,客户端的用户名和密码保存在Switch B上。
图1-11 设备作为Stelnet客户端配置组网图
# 生成RSA密钥对。
[SwitchB] public-key local create rsa
The range of public key size 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密钥对。
[SwitchB] public-key local create dsa
The range of public key size 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.
# 使能SSH服务器功能。
# 配置VLAN接口2的IP地址,客户端将通过该地址连接Stelnet服务器。
[SwitchB] interface vlan-interface 2
[SwitchB-Vlan-interface2] ip address 192.168.1.40 255.255.255.0
[SwitchB-Vlan-interface2] quit
# 设置Stelnet客户端登录用户线的认证方式为AAA认证。
[SwitchB-line-vty0-63] authentication-mode scheme
[SwitchB-line-vty0-63] quit
# 创建设备管理类本地用户client001,并设置密码为明文aabbcc,服务类型为SSH,用户角色为network-admin。
[SwitchB] local-user client001 class manage
[SwitchB-luser-manage-client001] password simple aabbcc
[SwitchB-luser-manage-client001] service-type ssh
[SwitchB-luser-manage-client001] authorization-attribute user-role network-admin
[SwitchB-luser-manage-client001] quit
# 配置SSH用户client001的服务类型为Stelnet,认证方式为password认证。(此步骤可以不配置)
[SwitchB] ssh user client001 service-type stelnet authentication-type password
(2) Stelnet客户端建立与Stelnet服务器的连接
# 配置VLAN接口2的IP地址。
[SwitchA] interface vlan-interface 2
[SwitchA-Vlan-interface2] ip address 192.168.1.56 255.255.255.0
[SwitchA-Vlan-interface2] quit
[SwitchA] quit
# 建立到服务器192.168.1.40的SSH连接,选择在不认证服务器的情况下继续访问服务网,并在客户端保存服务器端的本地公钥。
Username: client001
The server is not authenticated. Continue? [Y/N]:y
Do you want to save the server public key? [Y/N]:y
[email protected]'s password:
输入正确的密码之后,即可成功登录到Switch B上。由于选择在本地保存服务器端的主机公钥,下次用户登录Switch B时直接输入正确密码即可成功登录。
# 在客户端配置SSH服务器端的主机公钥。在公钥视图输入服务器端的主机公钥,即在服务器端通过display public-key local dsa public命令显示的公钥内容。
[SwitchA] public-key peer key1
Enter public key view. Return to system view with "peer-public-key end" command.
[SwitchA-pkey-public-key-key1]308201B73082012C06072A8648CE3804013082011F0281810
0D757262C4584C44C211F18BD96E5F0
[SwitchA-pkey-public-key-key1]61C4F0A423F7FE6B6B85B34CEF72CE14A0D3A5222FE08CECE
65BE6C265854889DC1EDBD13EC8B274
[SwitchA-pkey-public-key-key1]DA9F75BA26CCB987723602787E922BA84421F22C3C89CB9B0
6FD60FE01941DDD77FE6B12893DA76E
[SwitchA-pkey-public-key-key1]EBC1D128D97F0678D7722B5341C8506F358214B16A2FAC4B3
68950387811C7DA33021500C773218C
[SwitchA-pkey-public-key-key1]737EC8EE993B4F2DED30F48EDACE915F0281810082269009E
14EC474BAF2932E69D3B1F18517AD95
[SwitchA-pkey-public-key-key1]94184CCDFCEAE96EC4D5EF93133E84B47093C52B20CD35D02
492B3959EC6499625BC4FA5082E22C5
[SwitchA-pkey-public-key-key1]B374E16DD00132CE71B020217091AC717B612391C76C1FB2E
88317C1BD8171D41ECB83E210C03CC9
[SwitchA-pkey-public-key-key1]B32E810561C21621C73D6DAAC028F4B1585DA7F42519718CC
9B09EEF0381840002818000AF995917
[SwitchA-pkey-public-key-key1]E1E570A3F6B1C2411948B3B4FFA256699B3BF871221CC9C5D
F257523777D033BEE77FC378145F2AD
[SwitchA-pkey-public-key-key1]D716D7DB9FCABB4ADBF6FB4FDB0CA25C761B308EF53009F71
01F7C62621216D5A572C379A32AC290
[SwitchA-pkey-public-key-key1]E55B394A217DA38B65B77F0185C8DB8095522D1EF044B465E
8716261214A5A3B493E866991113B2D
[SwitchA-pkey-public-key-key1]485348
[SwitchA-pkey-public-key-key1] peer-public-key end
[SwitchA] quit
# 建立到服务器192.168.1.40的SSH连接,并指定服务器端的主机公钥。
<SwitchA> ssh2 192.168.1.40 publickey key1
Username: client001
[email protected]'s password:
Username: client001
[email protected]'s password:
· 配置Switch A作为Stelnet客户端,用户能够通过Switch A安全地登录到Switch B上,并被授予用户角色network-admin进行配置管理。
· Switch B作为Stelnet服务器采用publickey认证方式对Stelnet客户端进行认证,使用的公钥算法为DSA。
图1-12 设备作为Stelnet客户端配置组网图
# 配置VLAN接口2的IP地址。
[SwitchA] interface vlan-interface 2
[SwitchA-Vlan-interface2] ip address 192.168.1.56 255.255.255.0
[SwitchA-Vlan-interface2] quit
# 生成DSA密钥对。
[SwitchA] public-key local create dsa
The range of public key size 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中。
[SwitchA] public-key local export dsa ssh2 key.pub
[SwitchA] quit
客户端生成密钥对后,需要将保存的公钥文件key.pub通过FTP/TFTP方式上传到服务器,具体过程略。
# 生成RSA密钥对。
[SwitchB] public-key local create rsa
The range of public key size 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密钥对。
[SwitchB] public-key local create dsa
The range of public key size 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.
# 使能SSH服务器功能。
# 配置VLAN接口2的IP地址,客户端将通过该地址连接SSH服务器。
[SwitchB] interface vlan-interface 2
[SwitchB-Vlan-interface2] ip address 192.168.1.40 255.255.255.0
[SwitchB-Vlan-interface2] quit
# 设置Stelnet客户端登录用户线的认证方式为AAA认证。
[SwitchB-line-vty0-63] authentication-mode scheme
[SwitchB-line-vty0-63] quit
# 从文件key.pub中导入远端的公钥,并命名为switchkey。
[SwitchB] public-key peer switchkey import sshkey key.pub
# 设置SSH用户client002的认证方式为publickey,并指定公钥为switchkey。
# 创建设备管理类本地用户client002,并设置服务类型为SSH,用户角色为network-admin。
[SwitchB] local-user client002 class manage
[SwitchB-luser-manage-client002] service-type ssh
[SwitchB-luser-manage-client002] authorization-attribute user-role network-admin
[SwitchB-luser-manage-client002] quit
(3) Stelnet客户端建立与Stelnet服务器的连接
# 建立到服务器192.168.1.40的SSH连接。
Username: client002
The server is not authenticated. Continue? [Y/N]:y
Do you want to save the server public key? [Y/N]:n
由于本地未保存服务器端的主机公钥,因此在选择继续访问服务器之后,即可成功登录到Switch B上。
举例中的设备运行于非FIPS模式下。若设备运行于FIPS模式下,相关的配置和显示信息会有所变化,请以设备的实际情况为准;设备作为服务器仅支持RSA和ECDSA密钥对。
· 用户可以通过Host上运行的SFTP客户端软件安全地登录到Switch上,并被授予用户角色network-admin进行文件管理和文件传送等操作;
· Switch采用password认证方式对SFTP客户端进行认证,客户端的用户名和密码保存在本地。
图1-13 设备作为SFTP服务器配置组网图
(1) 配置SFTP服务器
# 生成RSA密钥对。
[Switch] public-key local create rsa
The range of public key size 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 size 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.
# 启动SFTP服务器。
# 配置VLAN接口2的IP地址,客户端将通过该地址连接SSH服务器。
[Switch] interface vlan-interface 2
[Switch-Vlan-interface2] ip address 192.168.1.45 255.255.255.0
[Switch-Vlan-interface2] quit
# 创建设备管理类本地用户client002,并设置密码为明文aabbcc,服务类型为SSH,用户角色为network-admin,工作目录为flash:/。
[Switch] local-user client002 class manage
[Switch-luser-manage-client002] password simple aabbcc
[Switch-luser-manage-client002] service-type ssh
[Switch-luser-manage-client002] authorization-attribute user-role network-admin work-directory flash:/
[Switch-luser-manage-client002] quit
# 配置SSH用户认证方式为password,服务类型为SFTP。(此步骤可以不配置)
[Switch] ssh user client002 service-type sftp authentication-type password
(2) SFTP客户端建立与SFTP服务器的连接
# 建立与SFTP服务器的连接。
打开psftp.exe程序,出现如图1-14所示的客户端配置界面。输入如下命令:
根据提示输入用户名client002,密码aabbcc,即可登录SFTP服务器。
图1-14 SFTP客户端登录界面
· 配置Switch A作为SFTP客户端,用户能够通过Switch A安全地登录到Switch B上,并被授予用户角色network-admin进行文件管理和文件传送等操作。
· Switch B作为SFTP服务器采用publickey认证方式对SFTP客户端进行认证,使用的公钥算法为RSA。
图1-15 设备作为SFTP客户端配置组网图
(1) 配置SFTP客户端
# 配置VLAN接口2的IP地址。
[SwitchA] interface vlan-interface 2
[SwitchA-Vlan-interface2] ip address 192.168.0.2 255.255.255.0
[SwitchA-Vlan-interface2] quit
# 生成RSA密钥对。
[SwitchA] public-key local create rsa
The range of public key size 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中。
[SwitchA] public-key local export rsa ssh2 pubkey
[SwitchA] quit
客户端生成密钥对后,需要将保存的公钥文件pubkey通过FTP/TFTP方式上传到服务器,具体过程略。
(2) 配置SFTP服务器
# 生成RSA密钥对。
[SwitchB] public-key local create rsa
The range of public key size 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密钥对。
[SwitchB] public-key local create dsa
The range of public key size 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.
# 启动SFTP服务器。
# 配置VLAN接口2的IP地址,客户端将通过该地址连接SSH服务器。
[SwitchB] interface vlan-interface 2
[SwitchB-Vlan-interface2] ip address 192.168.0.1 255.255.255.0
[SwitchB-Vlan-interface2] quit
# 从文件pubkey中导入远端的公钥,并命名为switchkey。
[SwitchB] public-key peer switchkey import sshkey pubkey
# 设置SSH用户client001的服务类型为SFTP,认证方式为publickey,并指定公钥为switchkey。
# 创建设备管理类本地用户client001,并设置服务类型为SSH,用户角色为network-admin,工作目录为flash:/。
[SwitchB] local-user client001 class manage
[SwitchB-luser-manage-client001] service-type ssh
[SwitchB-luser-manage-client001] authorization-attribute user-role network-admin work-directory flash:/
[SwitchB-luser-manage-client001] quit
(3) SFTP客户端建立与SFTP服务器端的连接
# 与远程SFTP服务器建立连接,进入SFTP客户端视图。
<SwitchA> 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,并检查此文件是否删除成功。
-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> 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> 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。
Fetching / pubkey2 to public
/pubkey2 100% 225 1.4KB/s 00:00
# 将本地文件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客户端视图。
<SwitchA>
举例中的设备运行于非FIPS模式下。若设备运行于FIPS模式下,相关的配置和显示信息会有所变化,请以设备的实际情况为准;设备作为服务器仅支持RSA和ECDSA密钥对。
如下图所示,Switch A作为SCP客户端,Switch B作为SCP服务器。现有如下具体需求:
· 用户能够通过Switch A安全地登录到Switch B上,并被授予用户角色network-admin与Switch B进行文件传输。
· Switch B采用password认证对SCP客户端进行认证,客户端的用户名和密码保存在Switch B上。
图1-16 SCP文件传输配置组网图
(1) 配置SCP服务器
# 生成RSA密钥对。
[SwitchB] public-key local create rsa
The range of public key size 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密钥对。
[SwitchB] public-key local create dsa
The range of public key size 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.
# 使能SSH服务器功能。
# 配置接口VLAN接口2的IP地址,客户端将通过该地址连接SCP服务器。
[SwitchB] interface vlan-interface 2
[SwitchB-Vlan-interface2] ip address 192.168.0.1 255.255.255.0
[SwitchB-Vlan-interface2] quit
# 创建设备管理类本地用户client001,并设置密码为明文aabbcc,服务类型为SSH。
[SwitchB] local-user client001 class manage
[SwitchB-luser-manage-client001] password simple aabbcc
[SwitchB-luser-manage-client001] service-type ssh
[SwitchB-luser-manage-client001] authorization-attribute user-role network-admin
[SwitchB-luser-manage-client001] quit
# 配置SSH用户client001的服务类型为scp,认证方式为password认证。(此步骤可以不配置)
[SwitchB] ssh user client001 service-type scp authentication-type password
(2) 配置SCP客户端
# 配置接口VLAN 2的IP地址。
[SwitchA] interface vlan-interface 2
[SwitchA-Vlan-interface2] ip address 192.168.0.2 255.255.255.0
[SwitchA-Vlan-interface2] quit
[SwitchA] quit
(3) SCP客户端从SCP服务器下载文件
# 与远程SCP服务器建立连接,并下载远端的remote.bin文件,下载到本地后更名为local.bin。
<SwitchA> scp 192.168.0.1 get remote.bin local.bin
Username: client001
Connected to 192.168.0.1 ...
The Server is not authenticated. Continue? [Y/N]:y
Do you want to save the server public key? [Y/N]:n
Enter password:
18471 bytes transfered in 0.001 seconds.
仅Release 2311P04以上按本支持此举例,举例中的设备运行于非FIPS模式下。若设备运行于FIPS模式下,相关的配置和显示信息会有所变化,请以设备的实际情况为准;设备作为服务器仅支持RSA和ECDSA密钥对。
· 用户可以通过Host上运行的支持NETCONF over SSH登录方式的SSH客户端软件(SSH2版本)安全地登录到Switch上,并被授予用户角色network-admin进行配置管理;
· Switch采用password认证方式对Stelnet客户端进行认证,客户端的用户名和密码保存在本地。
图1-17 设备作为NETCONF over SSH服务器配置组网图
# 生成RSA密钥对。
[Switch] public-key local create rsa
The range of public key size 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 size 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.
# 使能NETCONF over SSH服务器功能。
[Switch] netconf ssh server enable
# 配置VLAN接口2的IP地址,客户端将通过该地址连接NETCONF over SSH服务器。
[Switch] interface vlan-interface 2
[Switch-Vlan-interface2] ip address 192.168.1.40 255.255.255.0
[Switch-Vlan-interface2] quit
# 设置NETCONF over SSH客户端登录用户线的认证方式为AAA认证。
[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的服务类型为NETCONF,认证方式为password认证。(此步骤可以不配置)
[Switch] ssh user client001 service-type netconf authentication-type password
用户通过支持NETCONF over SSH登录方式的客户端软件与Switch建立NETCONF over SSH连接之后,可直接进入Switch的NETCONF配置模式。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!