从官网真正获取TP钱包正版的途径 H3C S3600V2系列以太网交换机 配置指导
1.1 SSH2.0简介 1.1.1 概述
SSH是Secure Shell(安全外壳)的简称。用户通过一个不能保证安全的网络环境远程登录到设备时,SSH可以利用加密和强大的认证功能提供安全保障,保护设备不受诸如IP地址欺诈、明文密码截取等攻击。
设备支持SSH服务器功能,可以接受多个SSH客户端的连接。同时,设备还支持SSH客户端功能,允许用户与支持SSH服务器功能的设备建立SSH连接,从而实现从本地设备通过SSH登录到远程设备上。
1.1.2 SSH工作过程
在整个通讯过程中,为实现SSH的安全连接,服务器端与客户端要经历如下五个阶段:
表1-1 SSH服务器端与客户端建立连接的五个阶段
阶段
说明
详细内容
版本号协商阶段
SSH目前包括SSH1和SSH2两个版本,双方通过版本协商确定使用的版本
1.1.1 1.
密钥和算法协商阶段
SSH支持多种算法,双方根据本端和对端支持的算法,协商出最终使用的算法,并通过DH交换,生成相同的会话密钥和会话ID
1.1.2 2.
认证阶段
SSH客户端向服务器端发起认证请求,服务器端对客户端进行认证
1.1.2 3.
会话请求阶段
认证通过后,SSH客户端向服务器端发送会话请求
1.1.2 4.
交互会话阶段
会话请求通过后,SSH服务器端和客户端进行信息的交互
1.1.2 5.
1. 版本号协商阶段
具体步骤如下:
(1) 服务器打开端口22,等待客户端连接。
(2) 客户端向服务器端发起TCP初始连接请求。
(3) TCP连接建立后,服务器向客户端发送第一个报文,包括版本标志字符串,格式为“SSH-<主协议版本号>.<次协议版本号>-<软件版本号>”,协议版本号由主版本号和次版本号组成,软件版本号主要是为调试使用。
(4) 客户端收到报文后,首先解析该数据包,通过与服务器端的协议版本号进行对比,决定要使用的协议版本号。如果服务器端的协议版本号比自己的低,且客户端能支持服务器端的低版本,就使用服务器端的低版本协议号,否则使用自己的协议版本号。然后,客户端回应服务器一个报文,包含了客户端决定使用的协议版本号。
(5) 服务器比较客户端发来的版本号,如果服务器支持该版本,则使用该版本,并进入密钥和算法协商阶段,否则,版本协商失败,服务器端断开TCP连接。
2. 密钥和算法协商阶段
具体步骤如下:
(1) 服务器端和客户端分别发送算法协商报文给对端,报文中包含自己支持的公钥算法列表、加密算法列表、MAC(Message Authentication Code,消息验证码)算法列表、压缩算法列表等。
(2) 服务器端和客户端根据对端和本端支持的算法列表得出最终使用的算法。任何一种算法协商失败,都会导致服务器端和客户端的算法协商过程失败,服务器将断开与客户端的连接。
(3) 服务器端和客户端利用DH交换(Diffie-Hellman Exchange)算法、主机密钥对等参数,生成会话密钥和会话ID,并完成客户端对服务器身份的验证。
通过以上步骤,服务器端和客户端就取得了相同的会话密钥和会话ID。对于后续传输的数据,两端都会使用会话密钥进行加密和解密,保证了数据传送的安全。会话ID用来标识一个SSH连接,在认证阶段,会话ID还会用于两端的认证过程。
3. 认证阶段
SSH提供两种认证方法:
· password认证:利用AAA(Authentication、Authorization、Accounting,认证、授权和计费)对客户端身份进行认证。客户端向服务器发出password认证请求,将用户名和密码加密后发送给服务器;服务器将该信息解密后得到用户名和密码的明文,通过本地认证或远程认证验证用户名和密码的合法性,并返回认证成功或失败的消息。如果远程认证服务器要求用户进行二次密码认证,则会在发送给服务器端的认证回应消息中携带一个提示信息,该提示信息被服务器端透传给客户端,由客户端输出并要求用户再次输入一个指定类型的密码,当用户提交正确的密码并成功通过认证服务器的验证后,服务器端才会返回认证成功的消息。
· publickey认证:采用数字签名的方法来认证客户端。目前,设备上可以利用DSA、RSA或ECDSA三种公钥算法实现数字签名。客户端发送包含用户名、公钥和公钥算法的publickey认证请求给服务器端。服务器对公钥进行合法性检查,如果不合法,则直接发送失败消息;否则,服务器利用数字签名对客户端进行认证,并返回认证成功或失败的消息。
对于SSH2,除了上述两种认证方法外,还提供了password-publickey认证和any认证:
· password-publickey认证:指定客户端版本为SSH2的用户认证方式为必须同时进行password和publickey两种认证;客户端版本为SSH1的用户认证方式为只要进行其中一种认证即可。
· any认证:不指定用户的认证方式,用户既可以采用password认证,也可以采用publickey认证。
认证阶段的具体步骤如下:
· 客户端向服务器端发送认证请求,认证请求中包含用户名、认证方法(password认证或publickey认证)、与该认证方法相关的内容(如:password认证时,内容为密码)。
· 服务器端对客户端进行认证,如果认证失败,则向客户端发送认证失败消息,其中包含可以再次认证的方法列表。
· 客户端从认证方法列表中选取一种认证方法再次进行认证。
· 该过程反复进行,直到认证成功或者认证次数达到上限,服务器关闭连接为止。
4. 会话请求阶段
认证通过后,客户端向服务器发送会话请求。服务器等待并处理客户端的请求。请求被成功处理后,服务器会向客户端回应SSH_SMSG_SUCCESS包,SSH进入交互会话阶段;否则回应SSH_SMSG_FAILURE包,表示服务器处理请求失败或者不能识别请求。
5. 交互会话阶段会话请求成功后,tpwallet官网app下载连接进入交互会话阶段。在这个阶段, tp钱包官方安装下载数据被双向传送。客户端将要执行的命令加密后传给服务器,服务器接收到报文,解密后执行该命令,将执行的结果加密发送给客户端,客户端将接收到的结果解密后显示到终端上。
1.2 配置设备作为SSH服务器 1.2.1 SSH服务器配置任务简介
表1-2 SSH服务器配置任务简介
配置任务
说明
详细配置
生成本地非对称密钥对
可选
1.2.2
使能SSH服务器功能
必选
1.2.3
配置SSH客户端登录时的用户界面
必选
1.2.4
配置客户端的公钥
对于采用publickey认证的SSH用户为必选
对于采用password认证的SSH用户为可选
1.2.5
配置SSH用户并指定服务类型和认证方式
可选
1.2.6
配置服务器上的SSH管理功能
可选
1.2.7
配置SSH服务器发送报文的DSCP优先级
可选
1.2.8
1.2.2 生成本地非对称密钥对
服务器端的DSA、RSA或ECDSA密钥对,用于在密钥和算法协商阶段生成会话密钥和会话ID,以及客户端认证服务器。
表1-3 生成本地非对称密钥对
操作
命令
说明
进入系统视图
system-view
-
生成本地非对称密钥对
非FIPS模式下:
public-key local create { dsa | ecdsa { secp192r1 | secp256r1 } | rsa }
FIPS模式下:
public-key local create { dsa | ecdsa secp256r1 | rsa }
必选
缺省情况下,不存在任何非对称密钥对
1.2.3 使能SSH服务器功能
表1-4 使能SSH服务器功能
操作
命令
说明
进入系统视图
system-view
-
使能SSH服务器功能
ssh server enable
必选
缺省情况下,SSH服务器功能处于关闭状态
1.2.4 配置SSH客户端登录时的用户界面
SSH客户端通过VTY用户界面访问设备。因此,需要配置SSH客户端登录时采用的VTY用户界面,使其支持SSH远程登录协议。配置结果在客户端下次请求登录时生效。
表1-5 配置SSH客户端登录时的用户界面
操作
命令
说明
进入系统视图
system-view
-
进入一个或多个VTY用户界面视图
user-interface vty number [ ending-number ]
-
配置登录用户界面的认证方式为scheme方式
authentication-mode scheme
必选
缺省情况下,用户界面认证为password方式
配置所在用户界面支持SSH协议
protocol inbound { all | ssh }
可选
缺省情况下,系统支持所有的协议,即支持Telnet和SSH
1.2.5 配置客户端的公钥
如果SSH用户采用publickey认证方式登录服务器,则需要在服务器端配置客户端的DSA、RSA或ECDSA主机公钥,并在客户端为该SSH用户指定与主机公钥对应的DSA、RSA或ECDSA主机私钥,以便服务器端采用数字签名对客户端进行验证。
服务器端可以通过手工配置和从公钥文件中导入两种方式来配置客户端的公钥:
· 手工配置客户端的公钥:采用手工输入或拷贝粘贴的方式将客户端的公钥配置到服务器上。这种方式要求手工输入或拷贝粘贴的主机公钥必须是未经转换的DER(Distinguished Encoding Rules,特异编码规则)公钥编码格式。
· 从公钥文件中导入客户端的公钥:自动将客户端公钥文件中的客户端公钥转换为PKCS(Public Key Cryptography Standards,公共密钥加密标准)编码的形式导入到服务器上。这种方式需要事先将客户端的公钥文件通过FTP/TFTP以二进制(binary)方式传输到服务器上。
表1-6 手工配置客户端的公钥
操作
命令
说明
进入系统视图
system-view
-
进入公钥视图
public-key peer keyname
-
进入公钥编辑视图
public-key-code begin
-
配置客户端的公钥
直接输入公钥内容
必选
在输入公钥内容时,字符之间可以有空格,也可以按回车键继续输入数据
退回公钥视图,并保存配置的主机公钥
public-key-code end
-
退出公钥编辑视图时,系统自动保存配置的公钥密钥
退回系统视图
peer-public-key end
-
表1-7 从公钥文件中导入客户端的公钥
操作
命令
说明
进入系统视图
system-view
-
从公钥文件中导入SSH用户的公钥
public-key peer keyname import sshkey filename
必选
1.2.6 配置SSH用户并指定服务类型和认证方式
通过本配置,可以在创建SSH用户的同时,指定SSH用户的服务类型和认证方式:
· 服务类型:Stelnet、SFTP和SCP。Stelnet即Secure Telnet,安全的Telnet服务,详细内容请参见“2.1 SFTP简介”;SCP详细内容请参见“3.1 SCP简介”。
· 认证方式:password认证、publickey认证、password-publickey认证、any认证。
表1-8 配置SSH用户并指定服务类型和认证方式
操作
命令
说明
进入系统视图
system-view
-
创建SSH用户,并指定SSH用户的服务类型和认证方式
SSH用户的服务类型为stelnet
非FIPS模式下:
ssh user username service-type stelnet authentication-type { password | { any | password-publickey | publickey } assign publickey keyname&<1-6> }
FIPS模式下:
ssh user username service-type stelnet authentication-type { password | password-publickey assign publickey keyname&<1-6> }
二者必选其一
SSH用户的服务类型为all、scp或sftp
非FIPS模式下:
ssh user username service-type { all | scp | sftp } authentication-type { password | { any | password-publickey | publickey } assign publickey keyname&<1-6> work-directory directory-name }
FIPS模式下:
ssh user username service-type { all | scp | sftp } authentication-type { password | password-publickey assign publickey keyname&<1-6> work-directory directory-name }
1.2.7 配置服务器上的SSH管理功能
SSH的管理功能包括:
· 设置SSH服务器是否兼容SSH1版本的客户端
· 设置RSA服务器密钥对的更新时间,此配置仅对SSH客户端版本为SSH1的用户有效
· 设置SSH用户认证的超时时间
· 设置SSH用户请求连接的认证尝试次数
· 设置对SSH客户端的访问控制,使用ACL过滤向SSH服务器发起连接的SSH客户端
通过定时更新服务器密钥以及对用户认证时间、认证次数的限制,可以防止恶意地对密钥和用户名的猜测和破解,从而提高了SSH连接的安全性。
表1-9 配置服务器上的SSH管理功能
操作
命令
说明
进入系统视图
system-view
-
设置SSH服务器兼容SSH1版本的客户端
ssh server compatible-ssh1x [ enable ]
可选
缺省情况下,SSH服务器兼容SSH1版本的客户端
FIPS模式下,不支持本命令
设置RSA服务器密钥对的更新时间
ssh server rekey-interval hours
可选
缺省情况下,系统不更新RSA服务器密钥对
FIPS模式下,不支持本命令
设置SSH用户的认证超时时间
ssh server authentication-timeout time-out-value
可选
缺省情况下,SSH用户的认证超时时间为60秒
设置SSH认证尝试的最大次数
ssh server authentication-retries times
可选
缺省情况下,SSH连接认证尝试的最大次数为3次
设置对IPv4 SSH用户的访问控制
ssh server acl acl-number
缺省情况下,允许所有IPv4 SSH用户向设备发起SSH访问
设置对IPv6 SSH用户的访问控制
ssh server ipv6 acl ipv6 acl-number
缺省情况下,允许所有IPv6 SSH用户向设备发起SSH访问
1.2.8 配置SSH服务器发送报文的DSCP优先级
在IPv4和IPv6报文头中,包含一个8bit的字段,用于标识IP报文的服务类型。在IPv4报文中,这个字段称为ToS字段;在IPv6报文中,称为Traffic class字段。RFC 2474对这8个bit进行了定义,将前6个bit定义为DSCP优先级,最后2个bit作为保留位。在报文传输的过程中,DSCP优先级可以被网络设备识别,并作为报文传输优先程度的参考。
用户可以对SSH服务器发送报文的DSCP优先级进行配置。
表1-10 配置SSH服务器发送报文的DSCP优先级
操作
命令
说明
进入系统视图
system-view
-
配置SSH服务器发送IPv4报文的DSCP优先级
ssh server dscp dscp-value
可选
缺省情况下,SSH服务器发送IPv4报文的DSCP优先级为16
配置SSH服务器发送IPv6报文的DSCP优先级
ssh server ipv6 dscp dscp-value
可选
缺省情况下,SSH服务器发送IPv6报文的DSCP优先级为0
1.3 配置设备作为SSH客户端 1.3.1 SSH客户端配置任务简介
表1-11 SSH客户端配置任务简介
配置任务
说明
详细配置
为SSH客户端指定源IP地址或源接口
可选
1.3.2
配置SSH客户端是否支持首次认证
可选
1.3.3
建立SSH客户端和服务器端的连接
必选
1.3.4
配置SSH客户端发送报文的DSCP优先级
可选
1.3.5
1.3.2 为SSH客户端指定源IP地址或源接口
用户可以通过以下配置,为SSH客户端指定源IP地址或者源接口,这样客户端可以用指定的IP地址或接口地址访问SSH服务器,增加了业务的可管理性。
表1-12 为SSH客户端指定源IP地址或源接口
操作
命令
说明
进入系统视图
system-view
-
为SSH客户端指定源IP地址或源接口
为SSH客户端指定源IPv4地址或源接口
ssh client source { ip ip-address | interface interface-type interface-number }
二者必选其一
缺省情况下,客户端用设备路由指定的接口地址访问SSH服务器
为SSH客户端指定源IPv6地址或源接口
ssh client ipv6 source { ipv6 ipv6-address | interface interface-type interface-number }
1.3.3 配置SSH客户端是否支持首次认证
当设备作为SSH客户端和服务器端连接时,可以设置SSH客户端对访问的SSH服务器是否进行首次认证。
· 如果支持首次认证,则当SSH客户端首次访问服务器,而客户端没有配置服务器端的主机公钥时,用户可以选择继续访问该服务器,并在客户端保存该主机公钥;当用户下次访问该服务器时,就以保存的主机公钥来认证该服务器。
· 如果不支持首次认证,则当客户端没有配置服务器端的主机公钥时,客户端将拒绝访问该服务器。用户必须事先将要访问的服务器端的主机公钥配置在本地,同时指定要连接的服务器端的主机公钥名称,以便客户端对连接的服务器进行认证。
1. 配置SSH客户端支持首次认证表1-13 配置SSH客户端支持首次认证
操作
命令
说明
进入系统视图
system-view
-
设置SSH客户端对访问的SSH服务器进行首次认证
ssh client first-time [ enable ]
可选
缺省情况下,客户端进行首次认证
2. 配置SSH客户端不支持首次认证
如果配置SSH客户端不支持首次认证,则需要在客户端配置服务器端的主机公钥,并为要连接的服务器指定主机公钥名称,
表1-14 配置SSH客户端不支持首次认证
操作
命令
说明
进入系统视图
system-view
-
设置SSH客户端对访问的SSH服务器不进行首次认证
undo ssh client first-time
必选
缺省情况下,客户端进行首次认证
配置服务器端的主机公钥
请参见“1.2.5 配置客户端的公钥”
必选
在客户端配置服务器端主机公钥的方法,与在服务器端配置客户端公钥的方法相同
在客户端上指定要连接的服务器端的主机公钥名称
ssh client authentication server server assign publickey keyname
必选
1.3.4 建立SSH客户端和服务器端的连接
表1-15 建立SSH客户端和服务器端的连接
操作
命令
说明
建立SSH客户端和服务器端的连接,并指定公钥算法、客户端和服务器的首选加密算法、首选HMAC算法和首选密钥交换算法
建立SSH客户端和IPv4服务器端的连接,并指定公钥算法、客户端和服务器的首选加密算法、首选HMAC算法和首选密钥交换算法
非FIPS模式下:
ssh2 server [ port-number ] [ vpn-instance vpn-instance-name ] [ identity-key { dsa | ecdsa | rsa } | prefer-ctos-cipher { 3des | aes128 | des } | prefer-ctos-hmac { md5 | md5-96 | sha1 | sha1-96 } | prefer-kex { dh-group-exchange | dh-group1 | dh-group14 } | prefer-stoc-cipher { 3des | aes128 | des } | prefer-stoc-hmac { md5 | md5-96 | sha1 | sha1-96 } ]
FIPS模式下:
ssh2 server [ port-number ] [ vpn-instance vpn-instance-name ] [ identity-key { ecdsa | rsa } | 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 } ]
二者必选其一
必须在用户视图下执行本命令
建立SSH客户端和IPv6服务器端的连接,并指定公钥算法、客户端和服务器的首选加密算法、首选HMAC算法和首选密钥交换算法
非FIPS模式下:
ssh2 ipv6 server [ port-number ] [ vpn-instance vpn-instance-name ] [ identity-key { dsa | ecdsa | rsa } | prefer-ctos-cipher { 3des | aes128 | des } | prefer-ctos-hmac { md5 | md5-96 | sha1 | sha1-96 } | prefer-kex { dh-group-exchange | dh-group1 | dh-group14 } | prefer-stoc-cipher { 3des | aes128 | des } | prefer-stoc-hmac { md5 | md5-96 | sha1 | sha1-96 } ]
FIPS模式下:
ssh2 ipv6 server [ port-number ] [ vpn-instance vpn-instance-name ] [ identity-key { ecdsa | rsa } | 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 } ]
1.3.5 配置SSH客户端发送报文的DSCP优先级
在IPv4和IPv6报文头中,包含一个8bit的字段,用于标识IP报文的服务类型。在IPv4报文中,这个字段称为ToS字段;在IPv6报文中,称为Traffic class字段。RFC 2474对这8个bit进行了定义,将前6个bit定义为DSCP优先级,最后2个bit作为保留位。在报文传输的过程中,DSCP优先级可以被网络设备识别,并作为报文传输优先程度的参考。
用户可以对SSH客户端发送报文的DSCP优先级进行配置。
表1-16 配置SSH客户端发送报文的DSCP优先级
操作
命令
说明
进入系统视图
system-view
-
配置SSH客户端发送IPv4报文的DSCP优先级
ssh client dscp dscp-value
可选
缺省情况下,SSH客户端发送IPv4报文的DSCP优先级为16
配置SSH客户端发送IPv6报文的DSCP优先级
ssh client ipv6 dscp dscp-value
可选
缺省情况下,SSH客户端发送IPv6报文的DSCP优先级为0
1.4 SSH协议显示和维护
在完成上述配置后,在任意视图下执行display命令,可以显示配置后SSH的运行情况,通过查看显示信息,验证配置的效果。
表1-17 SSH协议显示和维护
操作
命令
显示当前为SFTP客户端设置的源IP地址或者源接口
display sftp client source [ | { begin | exclude | include } regular-expression ]
显示当前为SSH客户端设置的源IP地址或者源接口
display ssh client source [ | { begin | exclude | include } regular-expression ]
在SSH服务器端显示该服务器的状态信息或会话信息
display ssh server { status | session } [ | { begin | exclude | include } regular-expression ]
在SSH客户端显示客户端保存的服务器端的主机公钥和服务器的对应关系
display ssh server-info [ | { begin | exclude | include } regular-expression ]
在SSH服务器端显示SSH用户信息
display ssh user-information [ username ] [ | { begin | exclude | include } regular-expression ]
显示本地密钥对中的公钥部分
display public-key local { dsa | rsa } public [ | { begin | exclude | include } regular-expression ]
显示保存在本地的远端主机的公钥信息
display public-key peer [ brief | name publickey-name ] [ | { begin | exclude | include } regular-expression ]
1.5 设备作为SSH服务器配置举例 1.5.1 password认证配置举例 1. 组网需求
如图1-1,配置Host(SSH客户端)与Switch建立本地连接。Host采用SSH协议登录到Switch上,以保证数据信息交换的安全。SSH用户采用的认证方式为password认证,用户名和密码保存在Switch上。
2. 组网图图1-1 SSH password认证配置组网图
3. 配置步骤
(1) 配置SSH服务器
# 生成RSA密钥对。
<Switch> system-view
[Switch] public-key local create rsa
The range of public key size is (512 ~ 2048).
NOTES: If the key modulus is greater than 512,
It will take a few minutes.
Press CTRL+C to abort.
Input the bits of the modulus[default = 1024]:
Generating Keys...
++++++++
++++++++++++++
+++++
++++++++
# 生成DSA密钥对。
[Switch] public-key local create dsa
The range of public key size is (512 ~ 2048).
NOTES: If the key modulus is greater than 512,
It will take a few minutes.
Press CTRL+C to abort.
Input the bits of the modulus[default = 1024]:
Generating Keys...
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++
# 启动SSH服务器。
[Switch] ssh server enable
# 配置VLAN接口1的IP地址,客户端将通过该地址连接SSH服务器。
[Switch] interface vlan-interface 1
[Switch-Vlan-interface1] ip address 192.168.1.40 255.255.255.0
[Switch-Vlan-interface1] quit
# 设置SSH客户端登录用户界面的认证方式为AAA认证。
[Switch] user-interface vty 0 15
[Switch-ui-vty0-15] authentication-mode scheme
# 设置Switch上远程用户登录协议为SSH。
[Switch-ui-vty0-15] protocol inbound ssh
[Switch-ui-vty0-15] quit
# 创建本地用户client001,并设置用户访问的命令级别为3。
[Switch] local-user client001
[Switch-luser-client001] password simple aabbcc
[Switch-luser-client001] service-type ssh
[Switch-luser-client001] authorization-attribute level 3
[Switch-luser-client001] quit
# 配置SSH用户client001的服务类型为Stelnet,认证方式为password认证。(此步骤可以不配置)
[Switch] ssh user client001 service-type stelnet authentication-type password
(2) SSH客户端建立与SSH服务器的连接
# 建立与SSH服务器端的连接。
打开PuTTY.exe程序,出现如图1-2所示的客户端配置界面。在“Host Name(or IP address)”文本框中输入SSH服务器的IP地址为192.168.1.40。
图1-2 SSH客户端配置界面(1)
在图1-2中,单击<Open>按钮。按提示输入用户名client001及密码aabbcc,即可进入Switch的配置界面。
1.5.2 publickey认证配置举例 1. 组网需求如图1-3,配置Host(SSH客户端)与Switch建立本地连接。Host采用SSH协议登录到Switch上,以保证数据信息交换的安全。SSH用户采用的认证方式为publickey认证,公钥算法为RSA。
2. 组网图图1-3 SSH publickey配置组网图
3. 配置步骤
(1) 配置SSH客户端
# 生成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) 配置SSH服务器
# 生成RSA密钥对。
<Switch> system-view
[Switch] public-key local create rsa
The range of public key size is (512 ~ 2048).
NOTES: If the key modulus is greater than 512,
It will take a few minutes.
Press CTRL+C to abort.
Input the bits of the modulus[default = 1024]:
Generating Keys...
++++++++
++++++++++++++
+++++
++++++++
# 生成DSA密钥对。
[Switch] public-key local create dsa
The range of public key size is (512 ~ 2048).
NOTES: If the key modulus is greater than 512,
It will take a few minutes.
Press CTRL+C to abort.
Input the bits of the modulus[default = 1024]:
Generating Keys...
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++
# 启动SSH服务器。
[Switch] ssh server enable
# 配置VLAN接口1的IP地址,客户端将通过该地址连接SSH服务器。
[Switch] interface vlan-interface 1
[Switch-Vlan-interface1] ip address 192.168.1.40 255.255.255.0
[Switch-Vlan-interface1] quit
# 设置用户接口上认证模式为AAA认证。
[Switch] user-interface vty 0 15
[Switch-ui-vty0-15] authentication-mode scheme
# 设置Switch上远程用户登录协议为SSH。
[Switch-ui-vty0-15] protocol inbound ssh
# 设置用户能访问的命令级别为3。
[Switch-ui-vty0-15] user privilege level 3
[Switch-ui-vty0-15] quit
# 从文件key.pub中导入远端的公钥,并命名为Switch001。
[Switch] public-key peer Switch001 import sshkey key.pub
# 设置SSH用户client002的认证方式为publickey,并指定公钥为Switch001。
[Switch] ssh user client002 service-type stelnet authentication-type publickey assign publickey Switch001
(3) SSH客户端建立与SSH服务器的连接
# 指定私钥文件,并建立与SSH服务器的连接。
打开PuTTY.exe程序,出现如图1-8所示的客户端配置界面。在“Host Name(or IP address)”文本框中输入SSH服务器的IP地址为192.168.1.40。
图1-8 SSH客户端配置界面(1)
单击左侧导航栏“Connection->SSH”下面的“Auth”(认证),出现如图1-9的界面。单击<Browse…>按钮,弹出文件选择窗口。选择与配置到服务器端的公钥对应的私钥文件private.ppk。
图1-9 SSH客户端配置界面(2)
如图1-9,单击<Open>按钮。按提示输入用户名client002,即可进入Switch的配置界面。
1.6 设备作为SSH客户端配置举例 1.6.1 password认证配置举例 1. 组网需求如图1-10,配置Switch A作为客户端,采用SSH协议登录到Switch B上。SSH用户采用的认证方式为password认证,用户名为client001,密码为aabbcc。
2. 组网图图1-10 设备作为SSH客户端配置组网图
3. 配置步骤
(1) 配置SSH服务器
# 生成RSA密钥对。
<SwitchB> system-view
[SwitchB] public-key local create rsa
The range of public key size is (512 ~ 2048).
NOTES: If the key modulus is greater than 512,
It will take a few minutes.
Press CTRL+C to abort.
Input the bits of the modulus[default = 1024]:
Generating Keys...
++++++++
++++++++++++++
+++++
++++++++
# 生成DSA密钥对。
[SwitchB] public-key local create dsa
The range of public key size is (512 ~ 2048).
NOTES: If the key modulus is greater than 512,
It will take a few minutes.
Press CTRL+C to abort.
Input the bits of the modulus[default = 1024]:
Generating Keys...
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++
# 启动SSH服务器。
[SwitchB] ssh server enable
# 配置VLAN接口1的IP地址,客户端将通过该地址连接SSH服务器。
[SwitchB] interface vlan-interface 1
[SwitchB-Vlan-interface1] ip address 10.165.87.136 255.255.255.0
[SwitchB-Vlan-interface1] quit
# 设置SSH客户端登录用户界面的认证方式为AAA认证。
[SwitchB] user-interface vty 0 15
[SwitchB-ui-vty0-15] authentication-mode scheme
# 设置Switch B上远程用户登录协议为SSH。
[SwitchB-ui-vty0-15] protocol inbound ssh
[SwitchB-ui-vty0-15] quit
# 创建本地用户client001。
[SwitchB] local-user client001
[SwitchB-luser-client001] password simple aabbcc
[SwitchB-luser-client001] service-type ssh
[SwitchB-luser-client001] authorization-attribute level 3
[SwitchB-luser-client001] quit
# 配置SSH用户client001的服务类型为Stelnet,认证方式为password认证。(此步骤可以不配置)
[SwitchB] ssh user client001 service-type stelnet authentication-type password
(2) SSH客户端建立与SSH服务器的连接
# 配置VLAN接口1的IP地址。
<SwitchA> system-view
[SwitchA] interface vlan-interface 1
[SwitchA-Vlan-interface1] ip address 10.165.87.137 255.255.255.0
[SwitchA-Vlan-interface1] quit
[SwitchA] quit
· 如果客户端支持首次认证,则可以直接与服务器建立连接。
# 建立到服务器10.165.87.136的SSH连接。
<SwitchA> ssh2 10.165.87.136
Username: client001
Trying 10.165.87.136 ...
Press CTRL+K to abort
Connected to 10.165.87.136 ...
The Server is not authenticated. Continue? [Y/N]:y
Do you want to save the server public key? [Y/N]:n
Enter password:
输入正确的密码之后,即可成功登录到Switch B上。
· 如果客户端不支持首次认证,则需要进行如下配置。
# 配置客户端对服务器不进行首次认证。
[SwitchA] undo ssh client first-time
# 在客户端配置SSH服务器端的主机公钥。在公钥编辑视图输入服务器端的主机公钥,即在服务器端通过display public-key local dsa public命令显示的公钥内容。
[SwitchA] public-key peer key1
[SwitchA-pkey-public-key] public-key-code begin
[SwitchA-pkey-key-code]308201B73082012C06072A8648CE3804013082011F0281810
0D757262C4584C44C211F18BD96E5F0
[SwitchA-pkey-key-code]61C4F0A423F7FE6B6B85B34CEF72CE14A0D3A5222FE08CECE
65BE6C265854889DC1EDBD13EC8B274
[SwitchA-pkey-key-code]DA9F75BA26CCB987723602787E922BA84421F22C3C89CB9B0
6FD60FE01941DDD77FE6B12893DA76E
[SwitchA-pkey-key-code]EBC1D128D97F0678D7722B5341C8506F358214B16A2FAC4B3
68950387811C7DA33021500C773218C
[SwitchA-pkey-key-code]737EC8EE993B4F2DED30F48EDACE915F0281810082269009E
14EC474BAF2932E69D3B1F18517AD95
[SwitchA-pkey-key-code]94184CCDFCEAE96EC4D5EF93133E84B47093C52B20CD35D02
492B3959EC6499625BC4FA5082E22C5
[SwitchA-pkey-key-code]B374E16DD00132CE71B020217091AC717B612391C76C1FB2E
88317C1BD8171D41ECB83E210C03CC9
[SwitchA-pkey-key-code]B32E810561C21621C73D6DAAC028F4B1585DA7F42519718CC
9B09EEF0381840002818000AF995917
[SwitchA-pkey-key-code]E1E570A3F6B1C2411948B3B4FFA256699B3BF871221CC9C5D
F257523777D033BEE77FC378145F2AD
[SwitchA-pkey-key-code]D716D7DB9FCABB4ADBF6FB4FDB0CA25C761B308EF53009F71
01F7C62621216D5A572C379A32AC290
[SwitchA-pkey-key-code]E55B394A217DA38B65B77F0185C8DB8095522D1EF044B465E
8716261214A5A3B493E866991113B2D
[SwitchA-pkey-key-code]485348
[SwitchA-pkey-key-code] public-key-code end
[SwitchA-pkey-public-key] peer-public-key end
# 指定服务器10.165.87.136对应的主机公钥名称为key1。
[SwitchA] ssh client authentication server 10.165.87.136 assign publickey key1
[SwitchA] quit
# 建立到服务器10.165.87.136的SSH连接。
<SwitchA> ssh2 10.165.87.136
Username: client001
Trying 10.165.87.136
Press CTRL+K to abort
Connected to 10.165.87.136...
Enter password:
输入正确的密码之后,即可成功登录到Switch B上。
1.6.2 publickey认证配置举例 1. 组网需求如图1-11,配置Switch A作为客户端,采用SSH协议登录到Switch B上。SSH用户采用的认证方式为publickey认证,公钥算法为DSA。
2. 组网图图1-11 设备作为SSH客户端配置组网图
3. 配置步骤
(1) 配置SSH客户端
# 配置VLAN接口1的IP地址。
<SwitchA> system-view
[SwitchA] interface vlan-interface 1
[SwitchA-Vlan-interface1] ip address 10.165.87.137 255.255.255.0
[SwitchA-Vlan-interface1] quit
# 生成DSA密钥对。
[SwitchA] public-key local create dsa
The range of public key size is (512 ~ 2048).
NOTES: If the key modulus is greater than 512,
It will take a few minutes.
Press CTRL+C to abort.
Input the bits of the modulus[default = 1024]:
Generating Keys...
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++
# 将生成的DSA主机公钥导出到指定文件key.pub中。
[SwitchA] public-key local export dsa ssh2 key.pub
[SwitchA] quit
客户端生成密钥对后,需要将保存的公钥文件key.pub通过FTP/TFTP方式上传到服务器。
(2) 配置SSH服务器
# 生成RSA密钥对。
<SwitchB> system-view
[SwitchB] public-key local create rsa
The range of public key size is (512 ~ 2048).
NOTES: If the key modulus is greater than 512,
It will take a few minutes.
Press CTRL+C to abort.
Input the bits of the modulus[default = 1024]:
Generating Keys...
++++++++
++++++++++++++
+++++
++++++++
# 生成DSA密钥对。
[SwitchB] public-key local create dsa
The range of public key size is (512 ~ 2048).
NOTES: If the key modulus is greater than 512,
It will take a few minutes.
Press CTRL+C to abort.
Input the bits of the modulus[default = 1024]:
Generating Keys...
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++
# 启动SSH服务器。
[SwitchB] ssh server enable
# 配置VLAN接口1的IP地址,客户端将通过该地址连接SSH服务器。
[SwitchB] interface vlan-interface 1
[SwitchB-Vlan-interface1] ip address 10.165.87.136 255.255.255.0
[SwitchB-Vlan-interface1] quit
# 设置SSH客户端登录用户界面的认证方式为AAA认证。
[SwitchB] user-interface vty 0 15
[SwitchB-ui-vty0-15] authentication-mode scheme
# 设置Switch B上远程用户登录协议为SSH。
[SwitchB-ui-vty0-15] protocol inbound ssh
# 设置用户能访问的命令级别为3。
[SwitchB-ui-vty0-15] user privilege level 3
[SwitchB-ui-vty0-15] quit
# 从文件key.pub中导入远端的公钥。
[SwitchB] public-key peer Switch001 import sshkey key.pub
# 设置SSH用户client002的认证方式为publickey,并指定公钥为Switch001。
[SwitchB] ssh user client002 service-type stelnet authentication-type publickey assign publickey Switch001
(3) SSH客户端建立与SSH服务器的连接
# 建立到服务器10.165.87.136的SSH连接。
<SwitchA> ssh2 10.165.87.136
Username: client002
Trying 10.165.87.136 ...
Press CTRL+K to abort
Connected to 10.165.87.136 ...
The Server is not authenticated. Continue? [Y/N]:y
Do you want to save the server public key? [Y/N]:n
之后,用户就可成功登录到Switch B上。