配置设备作为STelnet客户端登录其他设备
前置任务
在配置设备作为STelnet客户端登录其他设备之前,需完成以下任务:
- 已从终端成功登录到本设备。
- 本设备与STelnet服务器之间路由可达。
- STelnet服务器端已开启STelnet服务器功能。
- 获取STelnet服务器端配置的SSH用户信息和端口号。
配置流程
使用STelnet V1协议存在安全风险,建议使用STelnet V2登录设备。
在配置设备作为STelnet客户端登录其他设备任务中,配置流程如表6-17所示。
序号 |
配置任务名称 |
配置任务说明 |
配置流程说明 |
---|---|---|---|
1 |
生成本地密钥对,然后将公钥配置到SSH服务器上。 本步骤仅在设备以RSA、DSA或ECC方式登录SSH服务器的时候执行,password方式登录SSH服务器则无需执行。 |
任务1、2、3之间没有严格的顺序关系。 |
|
2 |
有两种配置方式:使能SSH客户端首次登录功能方式和SSH客户端为SSH服务器分配公钥方式,用户可选择其一进行配置。 |
||
3 |
包括配置SSH客户端发送keepalive报文的时间间隔和SSH客户端发送的keepalive报文的最大数目。 |
||
4 |
从终端通过STelnet客户端软件登录设备。 |
- |
缺省配置
参数 |
缺省值 |
---|---|
SSH客户端首次登录 |
关闭 |
SSH客户端给SSH服务器分配RSA、DSA或ECC公钥 |
没有为SSH服务器分配RSA、DSA或ECC公钥 |
操作步骤
- 生成本地密钥对
此步骤仅在设备以RSA、DSA或ECC方式登录SSH服务器的时候执行,设备以password方式登录SSH服务器,则无需执行。
表6-19 生成本地密钥对操作步骤
命令
说明
进入系统视图
system-view
-
生成本地密钥对或分配PKI证书
rsa local-key-pair create
或
dsa local-key-pair create
或
ecc local-key-pair create
根据生成的密钥类型,三选一。
密钥对生成后,可以执行display rsa local-key-pair public、display dsa local-key-pair public或display ecc local-key-pair public命令查看本地密钥对中的公钥部分信息。
提交配置
commit
-
- 配置设备首次连接SSH服务器的方式
作为客户端的设备首次连接SSH服务器时,因为客户端还没有保存过SSH服务器的公钥,无法对SSH服务器有效性进行检查,这样会导致连接不成功。可以通过下面两种方式来解决:
- 使能SSH客户端首次登录功能方式:不对SSH服务器的公钥进行有效性检查,确保首次连接成功。成功连接后,系统将自动分配并保存公钥,为下次连接时认证使用。具体配置见表6-20。此种方式配置简单。
- SSH客户端为SSH服务器分配公钥方式:将服务器端产生的公钥直接保存至客户端,保证在首次连接时SSH服务器有效性检查能够通过。具体配置见表6-21。此种方式配置较复杂,但安全性更高。
用户可以根据需求选择一种配置方式。
表6-20 使能SSH客户端首次登录功能操作步骤
命令
说明
进入系统视图
system-view
-
使能SSH客户端首次登录功能
ssh client first-time enable
缺省情况下,SSH客户端首次登录功能是关闭的。
提交配置
commit
-
表6-21 SSH客户端为SSH服务器分配RSA、DSA或ECC公钥方式操作步骤
命令
说明
进入系统视图
system-view
-
使能SSH客户端公钥算法
ssh client publickey { dsa | ecc | rsa } *
缺省情况下,RSA公钥算法是开启的。
执行此命令可以配置使用更安全的公钥算法登录设备,同时拒绝使用其他公钥算法,从而提升设备安全性。推荐使用ECC公钥算法。
如果ssh client first-time enable命令功能使能,客户端登录服务器时会提示保存服务器公钥,执行保存操作时,SSH客户端会自动根据ssh client publickey命令配置的公钥算法,选择能够与SSH客户端协商成功的公钥算法分配给SSH服务器。
如果ssh client first-time enable命令功能关闭,则必须执行ssh client peer assign命令为SSH服务器分配公钥,且分配的公钥算法必须能和ssh client publickey命令配置的公钥算法协商成功。这样SSH客户端对SSH服务器的公钥验证才会通过。
进入RSA、DSA或ECC公共密钥视图
rsa peer-public-key key-name [ encoding-type { der | openssh | pem } ]
或
dsa peer-public-key key-name encoding-type { der | openssh | pem }
或
ecc peer-public-key key-name [ encoding-type der ]
根据生成的密钥类型,三选一。
进入公共密钥编辑视图
public-key-code begin
-
编辑公共密钥
hex-data
- 键入的公共密钥必须是按公钥格式编码的十六进制字符串,由SSH服务器随机生成。
- 进入公共密钥编辑视图后,即可将服务器上产生的RSA、DSA或ECC公钥输入到客户端。
退出公共密钥编辑视图
public-key-code end
- 如果输入的密钥编码hex-data不合法,执行本步骤后,将无法生成密钥。
- 如果指定的密钥key-name已经被删除,再执行本步骤时,系统会提示:密钥已经不存在,此时直接退到系统视图。
退出公共密钥视图,回到系统视图
peer-public-key end
-
为SSH服务器绑定RSA、DSA或ECC公钥
ssh client peer server-ip-address assign { rsa-key | dsa-key | ecc-key } key-name
如果SSH客户端保存的SSH服务器公钥失效,执行命令undo ssh client peer server-ip-address assign { rsa-key | dsa-key | ecc-key },取消SSH服务器与RSA、DSA或ECC公钥的绑定关系,再执行本命令,为SSH服务器重新分配RSA、DSA或ECC公钥。
提交配置
commit
-
- 配置SSH客户端参数表6-22 配置SSH客户端参数
操作步骤
命令
说明
进入系统视图
system-view
-
配置SSH客户端发送keepalive报文的时间间隔
ssh client keepalive-interval seconds
缺省情况下,SSH客户端发送keepalive报文的时间间隔为0秒,即不发送keepalive报文。
如果设置发送报文的时间间隔是0秒,那么配置的最大keepalive报文数量将无效。
如果SSH客户端在周期内没有收到来自服务器的任何数据,客户端则在周期之后发送keepalive报文给服务器,直到达到配置的最大数目。如果客户端收不到服务器的keepalive的响应报文,它就会断开与服务器的连接。
配置SSH客户端发送的keepalive报文的最大数目
ssh client keepalive-maxcount count
(可选)配置SSH客户端上的密钥交换算法列表
ssh client key-exchange { dh_group14_sha1 | dh_group1_sha1 | dh_group_exchange_sha1 | dh_group_exchange_sha256 | ecdh_sha2_nistp256 | ecdh_sha2_nistp384 | ecdh_sha2_nistp521 | sm2_kep } *
缺省情况下,SSH客户端使用dh_group_exchange_sha256密钥交换算法。
在客户端与服务器协商的过程中,二者之间对报文传输的密钥交换算法进行协商,服务器端根据客户端发过来的密钥交换算法列表与自身的密钥交换算法列表进行对比,选择客户端与自己相匹配的第一个密钥交换算法作为报文传输的密钥交换算法,如果客户端的密钥交换算法列表与服务器端的密钥交换算法列表没有相匹配的算法,则协商失败。
(可选)配置SSH会话密钥重协商条件
ssh client rekey { data-limit data-limit | max-packet max-packet | time minutes } *
用户可以使用此命令修改SSH客户端启动密钥重协商的条件。
为了提高传输安全性,SSH客户端可以启动密钥重协商,如果重协商失败,就会断开STelnet连接。缺省情况下,满足以下三个条件中的至少一个时,SSH客户端即触发密钥重协商:使用当前密钥传输报文总数据量达到1000兆字节。
发送和接收的报文总个数达到2147483648个。
STelnet连接时长达到60分钟。
(可选)配置SSH客户端的加密算法列表
ssh client cipher { des_cbc | 3des_cbc | aes128_cbc | aes256_cbc | aes128_ctr | aes256_ctr | arcfour128 | arcfour256 | aes192_cbc | aes192_ctr | aes128_gcm | aes256_gcm } *
缺省情况下,SSH客户端使用AES256_GCM、AES128_GCM、AES256_CTR、AES192_CTR和AES128_CTR加密算法。
(可选)配置SSH客户端上的校验算法列表
ssh client hmac { md5 | md5_96 | sha1 | sha1_96 | sha2_256 | sha2_256_96 | sha2_512 } *
缺省情况下,SSH客户端HMAC认证算法为SHA2_256和SHA2_512。
(可选)配置STelnet协议报文的DSCP优先级
ssh client dscp dscp-number
缺省情况下,STelnet协议报文的DSCP优先级值为48。
提交配置
commit
-
- 使用STelnet命令登录其他设备表6-23 使用STelnet命令登录其他设备
操作步骤
命令
说明
以STelnet方式通过IPv4的地址登录到SSH服务器上
stelnet [ -a source-ip-address | -i interface-type interface-number ] [ -force-receive-pubkey ] host-ip [ port-number ] [ -vpn-instance vpn-instance-name | prefer_kex kex-type | prefer_ctos_cipher cipher-type | prefer_stoc_cipher cipher-type | prefer_ctos_hmac hmac-type | prefer_stoc_hmac hmac-type | prefer_ctos_compress compress-type | prefer_stoc_compress compress-type | -ki aliveinterval | -kc alivecountmax | identity-key { dsa | ecc | rsa | pki } | user-identity-key { dsa | ecc | rsa | pki } ] *
根据网络地址类型不同,选择其中一种。
只有当服务器正在尝试连接的端口号是22时,STelnet客户端登录时可以不指定端口号。如果是其他端口号,STelnet客户端登录时必须指定端口号。
STelnet客户端登录SSH服务器时可以携带源IP地址、VPN实例名、选择密钥交换算法、加密算法、压缩算法和HMAC算法以及设置keepalive功能。
如果使用参数-i interface-type interface-number指定源接口,则不支持-vpn-instance vpn-instance-name参数。
以STelnet方式通过IPv6的地址登录到SSH服务器上
stelnet ipv6 [ -a source-ip-address ] [ -force-receive-pubkey ] host-ipv6 [ -vpn-instance vpn-instance-name ] [ -oi interface-type interface-number ] [ port-number ] [ prefer_kex kex-type | prefer_ctos_cipher cipher-type | prefer_stoc_cipher cipher-type | prefer_ctos_hmac hmac-type | prefer_stoc_hmac hmac-type | prefer_ctos_compress compress-type | prefer_stoc_compress compress-type | -ki aliveinterval | -kc alivecountmax | identity-key { dsa | ecc | rsa | pki } | user-identity-key { dsa | ecc | rsa | pki } ] *