• 产品与解决方案
  • 行业解决方案
  • 服务
  • 支持
  • 合作伙伴
  • 关于我们

H3C S3610[S5510]系列以太网交换机操作手册-RELEASE 0001(V1.03)

31-SSH操作

本章节下载  (5.65 MB)

31-SSH操作


第1章  SSH终端服务

1.1  SSH简介

SSH是Secure Shell(安全外壳)的简称。用户通过一个不能保证安全的网络环境远程登录到设备时,SSH特性可以提供安全保障和强大的认证功能,以保护设备不受诸如IP地址欺诈、明文密码截取等攻击。

设备可以接受多个SSH客户端的连接。SSH客户端的功能是允许用户与支持SSH Server的设备建立SSH连接。如图1-1图1-2所示,可以通过本地连接或广域网连接建立SSH通道。

图1-1 通过本地连接建立SSH通道

图1-2 通过广域网连接建立SSH通道

  注意:

目前设备支持SSH1.5版本。

 

在整个通讯过程中,为实现SSH认证的安全连接,服务器端与客户端要经历如下五个阶段:

(1)        版本号协商阶段

l              服务器打开端口22,等待客户端连接。

l              客户端向服务器端发起TCP初始连接请求,TCP连接建立后,服务器向客户端发送第一个报文,包括版本标志字符串,格式为“SSH-<主协议版本号>.<次协议版本号>-<软件版本号>”,协议版本号由主版本号和次版本号组成,软件版本号主要是为调试使用。

l              客户端收到报文后,解析该数据包,如果服务器端的协议版本号比自己的低,且能支持服务器端的低版本,就使用服务器端的低版本协议号,否则使用自己的协议版本号。

l              客户端回应服务器一个报文,包含了客户端决定使用的协议版本号。服务器比较客户端发来的版本号,决定是否能同客户端一起工作。

l              如果协商成功,则进入密钥算法协商阶段,否则服务器端断开TCP连接。

&  说明:

上述报文都是采用明文方式传输的。

 

(2)        密钥协商阶段

l              版本协商成功后,服务器向客户端发送一个包,内容为自己的主机公钥(host public key),服务器公钥(server public key),支持的加密算法,认证算法,协议扩展的标志,还有一个8字节(64bits)的随机数(cookie)。这个包没有加密,也是明文发送。然后双方开始计算会话ID(session id)。双方使用相同的参数计算出相同的长为16字节的会话ID。计算公式如下。

图1-3 会话ID的计算

l              客户端还要随机生成一个32字节的会话密钥(session key),用来加密传输的数据,但不直接把该密钥传给服务器端,而是用该密钥的前16字节与或(XOR)会话ID的16字节,后16字节不变,所得结果按MSB(Most Significant Bit,最高位)优先排列成一个MP型整数,用模数较小的公钥进行加密,再把结果按MSB优先顺序排列成一个MP型整数,用模数较大的公钥进行加密,如下所示。

图1-4 会话密钥的加密(图中x单位为字节)

l              其中所得result3即为要传输给对端的加密后的会话密钥,把它和客户端选择的加密算法、服务器传来的8字节cookie、自己的协议标志一起发给服务器端。服务器收到这个包含会话密钥信息的消息后,还原出会话密钥。

l              通过以上步骤,服务器端和客户端就取得了相同的会话密钥。会话时,两端都使用会话密钥进行加密和解密,保证了数据传送的安全。

(3)        认证阶段

客户端向服务器端发送自己的用户名信息,服务器端启动对该用户进行认证的程序。

SSH提供两种认证方法:PASSWORD认证和RSA认证。

l              PASSWORD认证:客户端向服务器发出PASSWORD认证请求,将用户名和密码加密后发送给服务器;服务器将该信息解密后得到用户名和密码的明文,与设备上保存的用户名和密码进行比较,并返回认证成功或失败的消息。

l              RSA认证:服务器端必须已经配置了客户端的RSA公钥。认证时,客户端发送RSA认证请求和自己的公钥模数给服务器端,服务器进行合法性检查,如果不合法,则直接发送失败消息,否则产生一个32字节的随机数,按上面所讲生成一个MP型整数,并用客户端的公钥加密后向客户端发起一个认证挑战。客户端收到挑战消息后用自己的私钥解密得到MP型整数,用它和会话号(session ID)生成消息摘要MD5值,把这个16字节的MD5值加密后发送给服务器。服务器接收后还原出MD5值并与它自己计算出的MD5值相比较,如果相同,认证成功,发送成功消息;否则失败,发送失败消息。从这个认证过程中可以看出,只有拥有私钥的人才能登录,其过程如下所示。

图1-5 RSA认证过程

(4)        会话请求阶段

认证通过后,客户端向服务器发送会话请求。服务器等待并处理客户端的请求。在这个阶段,请求被成功处理后,服务器都向客户端回应 SSH_SMSG_SUCCESS包;否则回应SSH_SMSG_FAILURE包,表示或者是服务器处理请求失败,或者是不能识别请求。服务器端成功处理请求后,SSH进入交互会话阶段。

(5)        交互会话阶段

会话申请成功后,连接进入交互会话模式。在这个模式下,数据被双向传送。客户端将要执行的命令加密后打包传给服务器,服务器接收到报文,解密后执行该命令,将执行的结果加密、打包、发还给客户端,客户端将接收到的结果解密后显示到终端上。

&  说明:

l      在交互会话阶段,客户端可以通过粘贴文本会话的方式发送要执行的命令,但文本会话不能超过2000字节,且粘贴的命令必须是同一视图下的命令,否则服务器可能无法正确执行该命令。

l      如果粘贴的文本会话超过2000字节,请将配置文件上传到服务器后,利用新的配置文件重新启动。

 

1.2  配置SSH服务器

1.2.1  启动SSH服务器

表1-1 启动SSH服务器

操作

命令

说明

进入系统视图

system-view

-

启动SSH服务器

ssh server enable

必选

缺省情况下,关闭SSH服务器功能

 

1.2.2  配置SSH客户端登录时的用户界面所支持的协议

启动SSH服务器后,必须设置系统支持SSH远程登录协议。配置结果在下次登录请求时生效。

表1-2 配置SSH客户端登录时的用户界面所支持的协议

操作

命令

说明

进入系统视图

system-view

-

进入单一或多个用户界面视图

user-interface [ type-keyword ] number [ ending-number ]

必选

配置登录用户界面的认证方式

authentication-mode scheme [ command-authorization ]

必选

配置所在用户界面支持的协议

protocol inbound { all | ssh | telnet }

可选

缺省情况下,系统支持所有的协议,即支持Telnet和SSH

 

  注意:

l      如果在该用户界面上配置支持的协议是SSH,为确保登录成功,请务必配置相应的认证方式为authentication-mode scheme

l      如果某用户界面已经配置成支持SSH协议,则在此用户界面上配置authentication-mode passwordauthentication-mode none将失败。

 

1.2.3  生成、销毁或导出RSA密钥

如果此时已经有了RSA密钥对,系统则提示是否替换原有密钥。服务器密钥和主机密钥的最小长度为512位,最大长度为2048位。

对于已经生成的RSA密钥对,可以根据指定格式在屏幕上显示RSA主机公钥或导出RSA主机公钥到指定文件。

表1-3 生成主机密钥对和服务器密钥对

操作

命令

说明

进入系统视图

system-view

-

生成RSA主机密钥对和服务器密钥对

rsa local-key-pair create

必选

 

表1-4 销毁主机密钥对和服务器密钥对

操作

命令

说明

进入系统视图

system-view

-

销毁RSA主机密钥对和服务器密钥对

rsa local-key-pair destroy

必选

 

表1-5 导出主机公钥

操作

命令

说明

进入系统视图

system-view

-

根据指定格式在屏幕上显示RSA主机公钥或导出RSA主机公钥到指定文件

rsa local-key-pair export ssh1 [ filename ]

必选

 

  注意:

l      rsa local-key-pair create命令只需执行一遍,设备重启后不必再次执行。

l      如果已配置过密钥对,再次配置时系统会提示是否进行替换。

 

1.2.4  配置SSH用户的认证方式

配置的认证方式在下次登录时生效。

表1-6 为SSH用户配置认证方式

操作

命令

说明

进入系统视图

system-view

-

为SSH用户配置认证方式

ssh user username authentication-type { password | rsa | all }

可选

缺省情况下,系统指定用户的认证方式为RSA认证

 

  注意:

对于使用RSA认证方式的用户,必须在设备上配置相应的用户及其公钥。对于使用password认证方式的用户,用户的账号信息可以配置在设备或者远程认证服务器(如RADIUS认证服务器)上。

 

1.2.5  配置服务器上的SSH管理功能

SSH的管理功能包括:

l              设置服务器密钥的定时更新时间,可以更大限度地保证您的SSH连接的安全性。

l              设置SSH认证的超时时间。

l              设置SSH用户请求连接的认证尝试次数,可以防止恶意猜测等行为。

表1-7 配置服务器上的SSH管理功能

操作

命令

说明

进入系统视图

system-view

-

设置服务器密钥对的更新时间

ssh server rekey-interval hours

可选

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

设置SSH认证超时时间

ssh server authentication-timeout time-out-value

可选

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

设置SSH认证尝试次数

ssh server authentication-retries times

可选

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

 

1.2.6  配置客户端用户的RSA公钥

本配置适用于对SSH用户采用RSA认证的情况。在服务器端上配置的是客户端SSH用户的RSA公钥。而在客户端,需要为该SSH用户指定与RSA公钥对应的RSA私钥。客户端的密钥对是由支持SSH1.5的客户端软件随机生成的。如果设备上对SSH用户配置的认证方式为password认证,则不必进行本配置。

另外,用户还可以从公钥文件导入SSH用户的RSA公钥。当用户执行导入命令时,系统会自动对由客户端软件生成的公钥文件进行格式转换(转换为PKCS标准编码形式,Public Key Cryptography Standards,公共密钥加密标准),并实现客户端公钥的配置。这种方式需要客户端事先将RSA密钥的公钥文件通过FTP/TFTP方式上传到服务器端。

  注意:

l      用户可以根据实际情况,对以下两个配置任务,选择其一即可。

l      在SSH服务器上创建SSH用户的目的是为SSH用户指定认证方式、用户公钥,可以通过配置ssh user assign rsa-keyssh user authentication-type中的任何一条命令来创建SSH用户,其缺省认证方式为RSA认证。

l      如果没有创建SSH用户,只要本地用户存在,且设置的服务类型为SSH,则SSH客户端仍然可以通过该用户登录SSH服务器,此时缺省认证方式为password认证。

 

表1-8 配置客户端用户的RSA公钥

操作

命令

说明

进入系统视图

system-view

-

进入公共密钥视图

rsa peer-public-key keyname

必选

进入公共密钥编辑视图

public-key-code begin

-

配置客户端的公钥

直接输入公钥内容

-

在输入公钥内容时,字符之间可以有空格,也可以按回车键继续输入数据,所配置的公钥必须是按公钥格式编码的十六进制字符串

退出公共密钥编辑视图,退回到公共密钥视图

public-key-code end

-

退出视图时,系统自动保存配置的公钥密钥

退出公共密钥视图,退回到系统视图

peer-public-key end

-

为SSH用户分配公共密钥

ssh user username assign rsa-key keyname

必选

keyname为已经存在的公共密钥名称。使用该命令为用户分配公钥时,如果此用户已经被分配了公钥,那么,以最后一次分配的公钥为准

 

表1-9 从公钥文件中导入客户端的RSA公钥

操作

命令

说明

进入系统视图

system-view

-

从公钥文件中导入SSH用户的RSA公钥

rsa peer-public-key keyname import sshkey filename

必选

 

1.3  配置SSH客户端

SSH客户端软件有很多,例如PuTTY、OpenSSH等。SSH客户端要与服务器建立连接,需要做如下基本配置:

l              指定服务器IP地址。

l              选择远程连接协议为SSH。通常客户端可以支持多种远程连接协议,如Telnet、Rlogin、SSH等。要建立SSH连接,必须选择远程连接协议为SSH。

l              选择SSH版本。一般客户端都提供多种SSH版本选择。由于设备目前支持的版本是SSH Server 1.5版本,客户端必须选择1.5或1.5以下版本。

l              指定RSA私钥文件。如果在服务器端配置了SSH用户采用RSA认证,并为SSH用户指定了公钥,就必须在客户端指定与RSA公钥对应的私钥文件。RSA密钥对是由客户端软件附带的工具生成的。

下面以客户端软件PuTTY、PuTTYGen和SSHKEY为例,说明SSH客户端的配置方法。

1.3.1  生成客户端密钥

运行PuTTYGen.exe,参数栏使用“SSH1(RSA)”,点击<Generate>,产生客户端密钥对。

图1-6 生成客户端密钥(1

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

图1-7 生成客户端密钥(2

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

图1-8 生成客户端密钥(3

同理,点击<save private key>存储私钥,弹出警告框,提醒是否保存没做任何保护措施的私钥,点击<Yes>,输入私钥文件名即可,此处为private,点击保存。

 

图1-9 生成客户端密钥(4

运行SSHKEY.exe,点击<Browse>,选择公钥文件。然后点击<Convert>,即可生成PKCS编码格式的RSA公钥数据。

图1-10 生成客户端密钥(5

1.3.2  指定服务器IP地址

打开PuTTY程序,出现如下客户端配置界面。

图1-11 SSH客户端配置界面(1)

在“Host Name(or IP address)”文本框中输入SSH服务器的IP地址(要求SSH服务器的IP地址与SSH客户端主机的路由可达)。

1.3.3  选择远程连接协议为SSH

图1-11,在“Protocol”选择栏中选择“SSH”。

1.3.4  选择SSH版本

单击SSH客户端配置界面左边目录树(“Category”)中的连接协议(“Connection”)中的“SSH”,出现如图1-12的界面。

图1-12 SSH客户端配置界面(2)

在“Protocol options”区域中,选择“Preferred SSH protocol version”参数的值为1。

1.3.5  以RSA方式打开SSH连接

如果用户需要RSA认证,就必须指定RSA私钥文件。如果用户只需要password认证,则不需要指定RSA私钥文件。

如上图,单击“SSH”下面的“Auth”(认证),出现如下界面。

图1-13 SSH客户端配置界面(3)

单击<Browse>按钮,弹出文件选择窗口。选择私钥文件,并确定即可。

1.3.6  以口令方式打开SSH连接

(1)        单击<Open>按钮,出现SSH客户端界面,如果连接正常则会提示用户输入用户名及口令,如图1-14

图1-14 SSH客户端界面

(2)        输入正确的用户名和口令,即可成功进行SSH登录连接。

(3)        退出登录,执行命令quit即可。

1.4  SSH协议显示和维护

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

表1-10 SSH协议显示和维护

操作

命令

查看主机和服务器密钥对的公钥部分

display rsa local-key-pair public

显示远端的RSA公共密钥

display rsa peer-public-key [ brief | name keyname ]

显示SSH状态信息或会话信息

display ssh server { status | session }

显示SSH用户信息

display ssh user-information [ username ]

 

1.5  SSH典型配置举例

1. 组网需求

图1-15,配置终端(SSH Client)与以太网交换机建立本地连接。终端采用SSH协议进行登录到交换机上,以保证数据信息交换的安全。SSH客户端的用户名为client001、密码为aabbcc。

2. 组网图

图1-15 SSH本地配置组网图

3. 配置步骤

以下将根据登录认证方式的不同分别介绍配置步骤,但开始任何一种配置之前,首先要生成RSA主机密钥对和服务器密钥对,并启动SSH服务器。

<Sysname> system-view

[Sysname]rsa local-key-pair create

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

NOTES: If the key modulus is greater than 512,

       It will take a few minutes.

Input the bits in the modulus[default = 1024]:

Generating keys...

...++++++++++++

...++++++++++++

............++++++++

.....++++++++

......Done!

[Sysname] ssh server enable

其次,必须为在交换机上创建VLAN接口,并为其分配IP地址,作为客户端连接的SSH服务器地址。

[Sysname] interface Vlan-interface 1

[Sysname-Vlan-interface1] ip address 192.168.0.1 255.255.255.0

[Sysname-Vlan-interface1] quit

最后,客户端主机的IP地址必须同交换机上的VLAN接口的IP地址位于同一个网段,这里设置为“192.168.0.2”。

(1)        配置SSH用户认证方式为password

# 设置SSH客户端登录用户界面的认证方式为AAA认证。

[Sysname] user-interface vty 0 4

[Sysname-ui-vty0-4] authentication-mode scheme

# 设置交换机上远程用户登录协议为SSH。

[Sysname-ui-vty0-4] protocol inbound ssh

[Sysname-ui-vty0-4] quit

# 创建本地用户client001,服务类型为SSH,能访问的命令级别为3。

[Sysname] local-user client001

[Sysname-luser-client001] password simple aabbcc

[Sysname-luser-client001] service-type ssh level 3

[Sysname-luser-client001] quit

SSH的认证超时时间、尝试次数以及服务器密钥更新时间可以采取系统默认值。

这些配置完成以后,需要在与交换机连接的终端上运行支持SSH1.5的客户端软件,配置SSH服务器(交换机)可达接口的IP地址192.168.0.1,协议类型为SSH,版本为1。打开SSH连接后,按提示输入用户名client001及密码aabbcc,即可进入交换机的配置界面。

(2)        配置SSH用户认证方式为RSA。

# 设置用户接口上认证模式为AAA认证

[Sysname] user-interface vty 0 4

[Sysname-ui-vty0-4] authentication-mode scheme

# 设置用户能访问的命令级别为3。

[Sysname-ui-vty0-4] user privilege level 3

# 设置交换机上远程用户登录协议为SSH。

[Sysname-ui-vty0-4] protocol inbound ssh

[Sysname-ui-vty0-4] quit

# 设置交换机上远程用户的认证方式为RSA。

[Sysname] ssh user client001 authentication-type rsa

这时需要在客户端软件上,随机产生RSA密钥对(含公钥及私钥),并按如下方式将RSA公钥(此处的RSA公钥是指用SSHKEY.EXE软件进行PKCS编码后的16进制字符串)配置到SSH服务器上指定的rsa peer-public-key中。

# 设置交换机上RSA的密钥。

[Sysname] rsa peer-public-key Switch001

[Sysname-rsa-public-key] public-key-code begin

[Sysname-rsa-key-code]30818602 818078C4 32AD7864 BB0137AA 516284BB 3F55F0E3

[Sysname-rsa-key-code]F6DD9FC2 4A570215 68D2B3F7 5188A1C3 2B2D40BE D47A08FA

[Sysname-rsa-key-code]CF41AF4E 8CCC2ED0 C5F9D1C5 22FC0625 BA54BCB3 D1CBB500

[Sysname-rsa-key-code]A177E917 642BE3B5 C683B0EB 1EC041F0 08EF60B7 8B6ED628

[Sysname-rsa-key-code]9830ED46 0BA21FDB F55E7C81 5D1A2045 54BFC853 5358E5CF

[Sysname-rsa-key-code]7D7DDF25 03C44C00 E2F49539 5C4B0201 25

[Sysname-rsa-key-code] public-key-code end

[Sysname-rsa-public-key] peer-public-key end

# 如果服务器端是以文件形式存放客户端的公钥,文件名为Switch001,则可以直接从文件中导入。

[Sysname] rsa peer-public-key Switch001 import sshkey Switch001

# 为用户client001指定公钥Switch001。

[Sysname] ssh user client001 assign rsa-key Switch001

&  说明:

在客户端,需要为该SSH用户client001指定与RSA公钥对应的RSA私钥。

 

这时您可以在保留有RSA私钥的终端上运行支持SSH1.5的客户端软件,进行相应的配置,即可建立SSH连接了。

 

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

新华三官网
联系我们