35-SSH操作
本章节下载: 35-SSH操作 (978.84 KB)
目 录
1.7.1 交换机充当SSH服务器并采用password本地认证时的配置举例
1.7.2 交换机充当SSH服务器并采用password远程RADIUS认证时的配置举例
1.7.3 交换机充当SSH服务器并采用password远程HWTACACS认证时的配置举例
1.7.4 交换机充当SSH服务器并采用公钥认证时的配置举例
1.7.5 交换机充当SSH客户端并采用password认证时的配置举例
1.7.6 交换机充当SSH客户端并采用公钥认证时的配置举例
1.7.7 交换机充当SSH客户端并采用不支持首次认证时的配置举例
SSH(Secure Shell,安全外壳)是一个用于在非安全网络中提供安全的远程登录以及其他安全网络服务的协议,它能够使用户安全地登录到交换机,通过设备的命令行接口进行配置和管理交换机。当用户通过非安全的网络环境远程登录到交换机时,每次发送数据前,SSH都会自动对数据进行加密,当数据到达目的地时,SSH自动对加密数据进行解密,以此提供安全的信息保障。同时,SSH提供强大的认证功能,保护交换机不受诸如DNS和IP欺骗等攻击。此外,SSH还支持其他功能,比如可以对传输的数据进行压缩,从而加快传输的速度。又可以代替Telnet,或为FTP提供安全的“通道”。
SSH采用客户—服务器模式。支持SSH功能的交换机既可以作为SSH服务器又可以作为SSH客户端,也可以同时充当服务器和客户端两种角色。作为SSH服务器时,为远程登录用户提供安全的SSH连接,以便用户能够安全的访问SSH服务器。作为SSH客户端时,允许与支持SSH服务器功能的设备建立SSH连接,从而实现从本地设备通过SSH登录到远程设备上。
加密和解密过程中使用的一组变换规则称为算法。未加密的信息称为明文,加密后的信息称为密文。加密和解密都是在密钥的控制下进行的。密钥是一组特定的字符串,是控制明文和密文变换的唯一参数,起到“钥匙”的作用。通过加密变换操作,可以将明文变换为密文,通过解密变换操作,将密文恢复为明文。如图1-1所示。
对称密钥算法是指数据加密和解密时使用相同的密钥。目前交换机主要支持的算法有DES、3DES、AES等,这些算法都可以有效地防止交互数据被窃听。
l 非对称密钥算法
非对称密钥算法,又称为公共密钥算法,是指数据加密和解密时使用不同的密钥,即通信的每一端都存在一对密钥,即一个私钥,一个公钥。公钥是公开的,私钥只有合法者拥有,从公钥很难分析出私钥。通过公钥(或私钥)加密后的数据只能利用对应的私钥(或公钥)进行解密。
非对称密钥算法可以用于加密,也就是用公钥对报文进行加密,然后由拥有私钥的合法者使用私钥对数据进行解密,这样保证数据的机密性。
非对称密钥算法还可以用于签名,比如用户1使用自己的私钥对数据进行签名,然后发给用户2,用户2可以用用户1的公钥验证签名,如果签名是正确的,那么就能够确认该数据来源于用户1。
目前交换机支持的非对称密钥算法包括RSA(Rivest Shamir Adleman)和DSA(Digital Signature Algorithm,数字签名算法),RSA既可以用于加密,又可以用于签名,而DSA只用于签名。
SSH加密通道上的数据加解密使用对称密钥算法,在SSH认证中使用非对称密钥算法进行数字签名以及身份认证。
在整个通讯过程中,为实现SSH认证的安全连接,服务器端与客户端要经历如下五个阶段:
表1-1 SSH服务器端与客户端建立连接的五个阶段
过程 |
说明 |
详细内容 |
版本号协商阶段 |
SSH目前包括SSH1和SSH2两个版本,双方通过版本协商确定使用的版本 |
|
密钥和算法协商阶段 |
SSH支持多种加密算法,双方根据本端和对端支持的算法,协商出最终使用的算法 |
|
认证阶段 |
SSH客户端向服务器端发起认证请求,服务器端对客户端进行认证 |
|
会话请求阶段 |
认证通过后,客户端向服务器端发送会话请求 |
|
交互会话阶段 |
会话请求通过后,服务器端和客户端进行信息的交互 |
l 目前,设备作为SSH服务器时,支持SSH2和SSH1两个版本;设备作为SSH客户端时,只支持SSH2版本。
l 如无特殊说明,文中的SSH均指SSH2。
具体步骤如下:
l 服务器端打开端口22,等待客户端连接。
l 客户端向服务器端发起TCP初始连接请求,TCP连接建立后,服务器端向客户端发送第一个报文,包括版本标志字符串,格式为“SSH-<主协议版本号>.<次协议版本号>-<软件版本号>”,协议版本号由主协议版本号和次协议版本号组成,软件版本号主要是为调试使用。
l 客户端收到报文后,解析该数据包,如果服务器端的协议版本号比自身的低,且能支持服务器端的版本,就使用服务器端的低版本协议号,否则使用自身的协议版本号。
l 客户端回应服务器端一个报文,包含了客户端决定使用的协议版本号。服务器端比较客户端发来的版本号,决定是否能同客户端一起工作。
l 如果协商成功,则进入密钥和算法协商阶段,否则服务器端断开TCP连接。
上述报文都是采用明文方式传输的。
具体步骤如下:
l 服务器端和客户端分别发送算法协商报文给对端,报文中包含自己支持的公钥算法列表、加密算法列表、MAC(Message Authentication Code,消息验证码)算法列表、压缩算法列表等。
l 服务器端和客户端根据对端和本端支持的算法列表得出最终使用的算法。
l 服务器端和客户端利用DH交换(Diffie-Hellman Exchange)算法、主机密钥对等参数,生成会话密钥和会话ID。
通过以上步骤,服务器端和客户端就取得了相同的会话密钥。对于后续传输的数据,两端都会使用会话密钥进行加密和解密,保证了数据传输的安全性。
服务器认证客户端具体步骤如下:
l 客户端向服务器端发送认证请求,认证请求中包含用户名、认证方法、与该认证方法相关的内容(如:password认证时,内容为密码)。
l 服务器端对客户端进行认证,如果认证失败,则向客户端发送认证失败消息,其中包含可以再次认证的方法列表。
l 客户端从认证方法列表中选取一种认证方法再次进行认证。
l 该过程反复进行,直到认证成功或者认证次数达到上限,服务器关闭连接为止。
SSH提供两种认证方法:
l password认证:客户端向服务器发出password认证请求,将用户名和密码加密后发送给服务器;服务器将该信息解密后得到用户名和密码的明文,与设备上保存的用户名和密码进行比较,并返回认证成功或失败的消息。
l 公钥认证:采用数字签名的方法来认证客户端。目前,设备上可以利用RSA和DSA两种公共密钥算法实现数字签名。客户端发送包含用户名、公共密钥和公共密钥算法的公钥认证请求给服务器端。服务器对公钥进行合法性检查,如果不合法,则直接发送失败消息;否则,服务器利用数字签名对客户端进行认证,并返回认证成功或失败的消息。
认证通过后,客户端向服务器端发送会话请求。服务器端等待并处理客户端的请求。在这个阶段,客户端的请求被成功处理后,服务器会回应SSH_SMSG_SUCCESS包,SSH进入交互会话阶段;否则回应SSH_SMSG_FAILURE包,表示服务器处理请求失败或者不能识别请求。
会话请求成功后,连接进入交互会话阶段。在这个模式下,数据被双向传送。客户端将要执行的命令加密后传给服务器端,服务器端接收到报文,解密后执行该命令,将执行的结果加密发还给客户端,客户端将接收到的结果解密后显示到终端上。
在不安全的网络环境中,当用户远程登录到网络设备上,对网络设备进行访问时,为保证安全性,可以将要访问的设备作为SSH客户端,被访问的网络设备作为SSH服务器,通过SSH协议的加密和认证机制,使客户端能够安全地远程访问SSH服务器。如下图所示,Host A、Host B和Host D作为SSH客户端通过网络连接与作为SSH服务器的Switch A建立SSH通道,实现对Switch A的安全访问。
用户需要根据角色的不同对设备进行相应的配置,本配置手册仅给出以下两种使用情况:
l 交换机充当SSH服务器与支持SSH客户端功能的软件的配合使用
l 交换机充当SSH服务器与交换机充当客户端的配合使用
表1-2 SSH配置任务简介
服务器 |
客户端 |
服务器端配置 |
客户端配置 |
交换机充当SSH服务器 |
支持SSH客户端功能的软件充当客户端 |
||
交换机充当SSH服务器 |
交换机充当SSH客户端 |
SSH服务器端与每一个SSH客户端单独建立一条安全的会话连接,这里仅给出一个客户端与要访问的一个SSH服务器建立SSH连接的配置过程,当多个服务器与多个客户端建立SSH连接时,需要根据具体情况为每个客户端和需要访问的SSH服务器进行单独配置。
在SSH实现过程中服务器端与客户端经历了五个阶段。同样,在SSH服务器端配置过程也可以分成如下几个阶段,具体请参见如下:
表1-3 SSH服务器端配置任务简介
配置任务 |
说明 |
详细配置 |
|
准备阶段 |
配置SSH客户端登录时的用户界面 |
必选 |
|
配置服务器的SSH管理功能 |
可选 |
||
版本确认阶段 |
配置服务器端兼容SSH1版本的客户端 |
该配置将确定服务器端支持的SSH版本 可选 缺省情况下,服务器端兼容SSH1版本的客户端 |
|
密钥生成阶段 |
配置密钥对 |
必选 |
|
认证阶段 |
创建SSH用户并指定认证方式 |
必选 |
|
服务请求阶段 |
配置SSH用户使用的服务类型 |
可选 缺省情况下,用户可以使用的服务类型为stelnet |
|
交互操作阶段 |
在服务器端配置客户端的公钥 |
l 当服务器端采用Password认证方式时,不选 l 当服务器端采用公钥认证方式时,必选 |
|
为SSH用户分配公共密钥 |
l 当服务器端采用Password认证方式时,不选 l 当采用公钥认证方式时,必选 |
||
导出RSA或DSA密钥 |
可选 当客户端不支持首次认证时,可以将服务器端公钥导出,并配置到客户端 |
SSH客户端通过VTY用户界面访问设备。因此,需要配置SSH客户端登录时采用的VTY用户界面,使其支持SSH远程登录协议。配置结果在下次登录请求时生效。
表1-4 配置SSH客户端登录时的用户界面
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入一个或多个VTY用户界面视图 |
user-interface vty first-number [ last-number ] |
- |
配置登录用户界面的认证为scheme方式 |
authentication-mode scheme [ command-authorization ] |
必选 缺省情况下,用户界面认证为password方式 |
配置所在用户界面支持的协议 |
protocol inbound { all |ssh } |
可选 缺省情况下,系统支持所有的协议,即支持Telnet和SSH |
l 如果在该用户界面上配置的协议支持SSH,为确保SSH用户登录成功,请务必配置登录用户界面的认证方式为authentication-mode scheme(采用AAA认证)。
l 如果用户配置了认证方式为authentication-mode password或authentication-mode none,则无法配置protocol inbound ssh;否则,如果配置了protocol inbound ssh,则认证方式无法配置为authentication-mode password或authentication-mode none。
SSH服务器上提供了一系列管理功能,通过设置这些功能,可以防止恶意猜测密码等非法行为,更大限度地保证用户SSH连接的安全性。当作为SSH服务器的设备存在多个IP地址或接口时,可以通过以下配置,指定IP地址或指定IP地址对应的接口,这样,当设备作为SSH服务器时,客户端只能通过指定IP地址登录服务器,增加了业务的可管理性。
表1-5 配置服务器上的SSH管理功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
设置SSH认证超时时间 |
ssh server timeout seconds |
可选 缺省情况下,认证超时时间为60秒 |
设置SSH验证重试次数 |
ssh server authentication-retries times |
可选 缺省情况下,SSH验证重试次数为3次 |
设置RSA服务器密钥的更新时间 |
ssh server rekey-interval hours |
可选 缺省情况下,系统不更新RSA服务器密钥 |
配置登录交换机的显示信息 |
header shell text |
可选 缺省情况下,没有配置显示信息 |
指定供SSH客户端访问的IP地址 |
ssh-server source-ip ip-address |
可选 缺省情况下,没有指定供SSH用户访问的IP地址 |
指定供SSH客户端访问的接口 |
ssh-server source-interface interface-type interface-number |
可选 缺省情况下,没有指定供SSH客户端访问的接口 |
l 配置登录交换机的显示信息,只有当设置用户可以使用的服务类型为stelnet时才可成功。有关配置用户使用的服务类型请参见“1.3.6 在服务器端配置SSH用户使用的服务类型”。
l 有关header命令的具体内容请参见“登录交换机”中的登录以太网交换机命令部分。
表1-6 配置服务器上的SSH管理功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
设定服务器端兼容SSH1版本的客户端 |
ssh server compatible-ssh1x enable |
可选 缺省情况下,服务器端兼容SSH1版本的客户端 |
在SSH中服务器端生成的密钥对将用于密钥和算法协商阶段参与会话密钥的生成和SSH客户端对SSH服务器的验证。客户端生成的密钥对将用于认证阶段采用公钥认证时SSH服务器对SSH客户端的验证。这两个阶段中可以使用RSA和DSA两种类型的密钥对。
需要注意的是由于不同客户端支持的公共密钥算法不同,服务器和客户端最终协商使用的密钥对就不同,因此,需要在服务器端生成RSA和DSA密钥对,确保客户端能够成功登录服务器。
在公钥认证中采用哪种公钥算法,用户可以根据需要进行选择。
该配置任务用来生成类型为RSA或DSA的密钥对。生成密钥对时,系统会提示您输入密钥模数的长度,密钥模数的最小长度为512位,最大长度为2048位,缺省长度为1024位。当设备上已经有了密钥对,此时如果仍要生成类型与已存在的密钥对类型相同的密钥对,则系统提示是否替换原有类型的密钥对。
表1-7 生成密钥对
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
生成密钥对 |
生成RSA密钥对 |
public-key local create rsa |
必选 缺省情况下,没有生成密钥对 |
生成DSA密钥对 |
public-key local create dsa |
l 生成密钥对的命令只需执行一遍,交换机重启后不必再次执行。
l 密钥的长度越长,也就越安全,但加密和解密的时间也就越长,所以用户可以根据具体情况选择生成密钥对的长度。
l 对于由多台设备堆叠形成的Fabric,用户需要先在当前登录的设备上生成密钥对,以保证Fabric中的所有堆叠设备具有相同的密钥对。
l 由于某些第三方软件(如:WinSCP)要求密钥的长度在768位以上(包括768位),因此建议生成RSA或DSA密钥对时,生成768位以上的密钥对。
当用户需要销毁RSA或DSA密钥对,比如密钥泄露,需要重新生成时,可通过以下配置任务来销毁RSA或DSA密钥对。
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
销毁密钥对 |
销毁RSA密钥对 |
public-key local destroy rsa |
可选 该命令用来销毁已生成的密钥对 |
销毁DSA密钥对 |
public-key local destroy dsa |
该配置任务用来创建SSH用户并指定认证方式。对于新创建的用户,必须指定其认证方式,否则将无法登录。
所谓SSH用户,是指在SSH服务器端设置的一组用户属性的集合。该集合以SSH用户名作为SSH用户的唯一标识。当SSH客户端远程登录到服务器端时,需要在SSH客户端上输入用户名,SSH服务器判断是否存在对应的SSH用户,如果不存在则断开连接,否则采用该用户名对应的认证方式对用户进行认证。
为了防止非法用户登录到设备,对设备进行破坏性配置,SSH协议支持多种用户认证方式,提高对用户认证的强度。包括密码认证、公钥认证和password-publickey认证。
l 密码认证
SSH协议可以利用AAA提供的认证功能,完成对登录用户进行密码认证。根据AAA采取的认证策略的不同,密码认证分为本地认证和远程认证两种方式。本地认证是指在SSH服务器本地保存用户的信息,认证过程在本地完成。远程认证是指将用户信息保存在远端的RADIUS等认证服务器上,认证过程在本地设备和远程认证服务器之间完成。有关AAA的具体内容请参见“AAA操作”。
由于密码认证方式的认证强度较弱,SSH协议引入了公钥认证方式。目前,设备上可以利用RSA和DSA两种非对称密钥算法实现公钥认证。使用公钥认证不需要用户记忆和输入密码,只要输入用户名,后续认证过程自动完成。但是因为公钥认证中使用的密钥对的对应关系(即一个公钥对应一个私钥),如果要实现多个用户的独立认证,则必须为每一个用户创建一个私钥,相应地需要在服务器上为每一个用户配置对应的公钥,对于有多个用户使用同一个终端登录的情况,这种方式在配置和密钥的管理上比较复杂。
l password-publickey认证
这种认证方式要求用户同时完成公钥认证和密码认证,只有两种认证都成功后,才能通过服务器端的认证。采用该认证方式可以在一对公私密钥对的基础上,通过密码认证提供的AAA功能,配置多个用户并为不同用户赋予不同的权限,从而达到控制多个用户的访问目的。
表1-9 创建SSH用户并指定认证方式
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
指定缺省的认证方式,所有创建的SSH用户都使用这个认证方式 |
ssh authentication-type default { all | password | password-publickey | publickey } |
两者必选其一 缺省情况下,系统没有创建SSH用户,也不指定认证方式 注意:当两条命令同时配置,且认证方式不同时,SSH用户的认证方式以ssh user authentication-type命令的配置为准 |
ssh user username |
||
创建SSH用户,并为该用户配置认证方式 |
ssh user username authentication-type { all | password | password-publickey | publickey } |
l 配置password认证时,username应与AAA中定义的有效用户名一致;配置公钥认证时,username就是SSH本地用户名,不需要在AAA中配置本地用户。有关AAA的相关内容请参见“AAA”。
l 如果用户配置的缺省认证方式为password,并且采用AAA本地认证,则还需要使用local-user命令在本地数据库中添加用户名和密码。在这种情况下,可以直接使用local-user命令配置的用户名和密码(配置service-type为ssh)登录SSH服务器,省略掉ssh user命令的配置。
l 如果用户配置的缺省认证方式为password,并且采用远程认证,如RADIUS认证,则可以直接使用远程服务器上的用户名和密码登录SSH服务器,省略掉ssh user命令的配置。
l 如果配置为公钥认证方式,则SSH用户登录服务器后可以访问的命令级别可通过user privilege level命令来配置,且所有使用公钥认证方式的用户可访问的命令级别相同。
l 如果配置为password或password-publickey认证方式,则SSH用户登录服务器后可以访问的命令级别由AAA来授权,使用password或password-publickey认证方式的不同用户,能够访问的命令级别可以不同。
l 如果配置为all认证方式,则SSH用户登录服务器后可以访问的命令级别具体由用户是通过password认证还是公钥认证来决定。
目前,交换机支持SSH协议的两种应用:Stelnet和SFTP。用户可以根据使用的应用选择不同的服务类型。
l Stelnet使用SSH协议提供的安全通道,实现对网络设备的远程访问,是SSH协议最基础的一种应用;
l SFTP利用SSH协议提供的安全通道,实现对网络设备的远程文件操作,是SSH协议中规定的一项扩展应用。
表1-10 配置SSH用户使用的服务类型
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置用户可以使用的服务类型 |
ssh user username service-type { stelnet | sftp | all } |
可选 缺省情况下,用户可以使用的服务类型为stelnet |
使用ssh user service-type命令配置用户可以使用的SSH服务类型时,如果该用户不存在,则系统会自动创建一个SSH用户。但此SSH用户无法登录成功,必须为此用户指定认证方式。
如果在SSH服务器端对SSH用户配置的认证方式为password认证,则不需要配置客户端的公钥。
SSH用户采用公钥认证时,需要在服务器端配置客户端的RSA或DSA主机公钥,以便当客户端登录服务器端时,对客户端进行相应的验证。
可以通过手工配置和从公钥文件中导入两种方式来配置客户端的主机公钥:
l 手工配置方式:手工配置客户端的主机公钥时,可以采用拷贝粘贴的方式将客户端的主机公钥配置到服务器端;
l 从公钥文件中导入方式:从公钥文件中导入客户端的主机公钥时,系统会自动对由客户端生成的公钥文件进行格式转换,并实现客户端公钥的配置。这种方式需要客户端事先将密钥的公钥文件通过FTP/TFTP方式上传到服务器端。
表1-11 手工配置客户端的公钥
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入公共密钥视图 |
public-key peer keyname |
必选 |
进入公共密钥编辑视图 |
public-key-code begin |
- |
配置客户端的公钥 |
直接输入公钥内容 |
在输入密钥数据时,字符之间可以有空格,也可以按回车键继续输入数据,所配置的公钥必须是按公钥格式编码的十六进制字符串 |
退出公共密钥编辑视图,退回到公共密钥视图 |
public-key-code end |
退出视图时,系统自动保存配置的公钥密钥 |
退出公共密钥视图,退回到系统视图 |
peer-public-key end |
- |
表1-12 从公钥文件中导入客户端的公钥
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
从公钥文件中导入SSH用户的公钥 |
public-key peer keyname import sshkey filename |
必选 |
如果在SSH服务器端对SSH用户配置的认证方式为password认证,则不需要为SSH用户分配公钥。
采用公钥认证时,需要在服务器端为SSH用户指定对应客户端的公钥。当客户端登录服务器时,服务器端就会根据指定SSH用户对应的公钥对客户端进行认证。
表1-13 为SSH用户分配公钥
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
为SSH用户分配公钥 |
ssh user username assign publickey keyname |
必选 多次分配公钥时,则以最后一次分配的公钥为准 |
在1.3.7 在服务器端配置客户端的公钥中介绍的配置方法,有一种方式是采用从公钥文件中导入的方式来配置客户端的主机公钥;同样,在1.4.3 2. 设置SSH客户端是否支持首次认证,如果SSH客户端不支持首次认证,服务器端需要将公钥配置到客户端,也可以采用从公钥文件中导入的方式来配置服务器端的主机公钥。当设备作为客户端或服务器并且设备上已经生成密钥对时,可以通过如下配置获取到公钥文件。
表1-14 导出RSA公钥
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
导出RSA公钥到指定文件 |
public-key local export rsa { openssh | ssh1 | ssh2 } [ filnename ] |
必选 |
表1-15 导出DSA公钥
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
导出DSA公钥到指定文件 |
public-key local export dsa { openssh | ssh2 } [ filnename ] |
必选 |
l 对于已经生成的密钥对,用户可以根据需要将主机公钥以指定的格式导出到指定文件,从而为在远端配置主机公钥做准备,如果不指定filnename参数将在屏幕上显示该格式的主机公钥信息。
l 对于DSA主机公钥,因为DSA不支持SSH1格式,所以可指定的格式只有SSH2和OpenSSH两种。对于RSA主机公钥,则可指定SSH1,SSH2,OpenSSH三种格式。
SSH服务器端采用的认证方式不同,SSH客户端的具体配置内容不同。当客户端不支持首次认证时,SSH客户端还需要配置服务器端的公钥,以便客户端对连接的服务器进行认证。
表1-16 SSH客户端配置任务简介
配置任务 |
SSH客户端配置 |
|
采用SSH客户端软件 |
采用支持SSH2的交换机作为客户端 |
|
采用Password认证时 |
||
采用公钥认证时 |
||
是否支持首次认证时 |
- |
SSH客户端软件有很多,例如PuTTY、OpenSSH等。SSH客户端要与服务器建立连接,需要做如下配置:
表1-17 采用客户端软件时的配置任务简介
配置任务 |
说明 |
详细配置 |
生成客户端密钥 |
l 当采用Password认证方式时,不选 l 当采用公钥认证方式时,必选 |
|
指定要访问服务器的IP地址 |
必选 |
|
选择远程连接协议为SSH |
必选 |
|
选择SSH版本 |
必选 |
|
以口令方式建立SSH连接 |
l 当采用Password认证方式时,必选 l 当采用公钥认证方式时,不选 |
|
以公钥认证方式建立SSH连接 |
l 当采用Password认证方式时,不选 l 当采用公钥认证方式时,必选 |
l 使用PuTTY软件时,推荐使用PuTTY release 0.53和PuTTY release 0.58两个版本;使用OpenSSH软件时,推荐使用OpenSSH_3.1p1和OpenSSH_4.2p1两个版本。使用其它软件和版本并不一定能够和作为SSH服务器的交换机配合使用,请用户在使用时注意。
l 选择远程连接协议为SSH。通常客户端可以支持多种远程连接协议,如Telnet、Rlogin、SSH等。要建立SSH连接,必须选择远程连接协议为SSH。
l 选择SSH版本。由于设备目前支持的版本是SSH2.0版本,客户端可以选择2.0或2.0以下版本。
l 指定私钥文件。如果在服务器端配置了SSH用户采用公钥认证,并为SSH用户指定了公钥,就必须在客户端指定与公钥对应的私钥文件。RSA或DSA密钥对是由客户端软件附带的工具生成的。
下面以客户端软件PuTTY0.58为例,说明SSH客户端的配置方法。
运行PuTTYGen.exe,选择要生成的密钥对。在参数栏中选择“SSH-2 RSA”或“SSH-2 DSA”,点击<Generate>,产生客户端密钥对。
图1-3 生成客户端密钥(1)
在产生密钥对的过程中需不停的移动鼠标,鼠标移动仅限于下图蓝色框中除绿色标记进程条外的地方,否则进程条的显示会不动,密钥对将停止产生,见图1-4。
密钥对产生后,点击<save public key>,输入存储公钥的文件名public,点击保存。
图1-5 生成客户端密钥(3)
同理,点击<save private key>存储私钥,弹出警告框,提醒是否保存没做任何保护措施的私钥,点击<Yes>,输入私钥文件名即可,此处为private,点击保存。
运行SSHKEY.exe,点击<Browse>,选择公钥文件public。然后点击<Convert>,即可生成PKCS编码格式的RSA公钥数据。
图1-7 生成客户端密钥(5)
打开PuTTY.exe程序,出现如下客户端配置界面。
图1-8 SSH客户端配置界面(1)
在“Host Name(or IP address)”文本框中输入SSH服务器的IP地址(要求SSH服务器的IP地址与SSH客户端主机的路由可达)。
如图1-8,在“Protocol”选择栏中选择“SSH”。
单击SSH客户端配置界面左边目录树(“Category”)中的连接协议(“Connection”)中的“SSH”,出现如图1-9的界面。
图1-9 SSH客户端配置界面(2)
在“Protocol options”区域中,选择“Preferred SSH protocol version”参数的值为2。
对于有些SSH客户端软件,只有在选择SSH1版本才支持DES算法,选择SSH2版本则不支持DES算法。PuTTY客户端软件在选择了DES后,可以在SSH2版本中支持DES算法协商。
(1) 在图1-9中,单击<Open>按钮,如果连接正常则会提示用户输入用户名及密码。
(2) 输入正确的用户名和密码,即可成功进行SSH登录连接。
(3) 退出登录,在用户视图下执行命令quit即可。
如果用户需要公钥认证,就必须指定相应的私钥文件。如果用户只需要密码认证,则不需要指定相应的私钥文件。
如图1-9,单击“SSH”下面的“Auth”(认证),出现如图1-10的界面。
图1-10 SSH客户端配置界面(3)
单击<Browse…>按钮,弹出文件选择窗口。选择私钥文件,并点击<Open>按钮。如果连接正常则会提示用户输入用户名。认证成功后,即可登录到服务器端。
表1-18 采用支持SSH2的交换机作为客户端时的配置任务简介
配置任务 |
说明 |
详细配置 |
采用公钥认证时SSH客户端的配置 |
l 采用password认证时,不选 l 采用公钥认证时,必选 |
|
设置SSH客户端是否支持首次认证 |
可选 |
|
指定业务报文源IP地址或源接口 |
可选 |
|
建立SSH客户端和服务器端的连接 |
必选 |
采用公钥认证时,需要将客户端的RSA或DSA公钥(两者选其一)配置到服务器端。具体配置过程如下:
l 将公钥配置到服务器端,具体请参见1.3.7 在服务器端配置客户端的公钥。
当设备作为SSH客户端和服务器端连接时,可以设置SSH客户端对访问的SSH服务器是否支持首次认证。
l 如果支持首次认证,是指当SSH客户端首次访问服务器端,而客户端没有配置服务器端的主机公钥时,用户可以选择继续访问该服务器端,并在客户端保存该主机公钥;当用户下次访问该服务器端时,就以保存的主机公钥来认证该服务器。
l 如果不支持首次认证,则当客户端没有配置服务器端的主机公钥时,客户端将拒绝访问该服务器。用户必须事先将要访问的服务器端的主机公钥配置在本地,同时指定要连接的服务器端的主机公钥名称,以便客户端对连接的服务器进行认证。
表1-19 设置SSH客户端支持首次认证
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
设置SSH客户端对访问的SSH服务器进行首次认证 |
ssh client first-time enable |
可选 缺省情况下,客户端支持首次认证 |
表1-20 设置SSH客户端不支持首次认证
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
设置SSH客户端对访问的SSH服务器不进行首次认证 |
undo ssh client first-time |
必选 缺省情况下,客户端支持首次认证 |
配置服务器端的公钥 |
请参见“1.3.7 在服务器端配置客户端的公钥” |
必选 在客户端配置服务器端公钥的方法,与在服务器端配置客户端公钥的方法相同 |
在客户端上指定要连接的服务器端的主机公钥名称 |
ssh client { server-ip | server-name } assign publickey keyname |
必选 |
如果支持首次认证,并且客户端没有配置服务器端的主机公钥。那么客户端只能相信服务器端发过来的公钥信息,这样达不到对服务器进行验证的效果。因为攻击者可以仿冒服务器和客户建立连接,即所谓的“中间人攻击”不可防。所以除非客户端信任服务器端发过来的公钥,否则建议用户采用不支持首次认证方式。
当作为SSH客户端的交换机存在多个IP地址和接口时,用户可以通过以下配置,对SSH客户端指定源IP地址,配置后客户端登录服务器时,源IP地址为指定的IP地址或指定接口的IP地址,增加了业务的可管理性。
表1-21 指定SSH客户端的源IP地址或源接口
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
指定SSH客户端的源IP地址 |
ssh2 source-ip ip-address |
可选 缺省情况下,没有指定SSH客户端的源IP地址 |
指定SSH客户端的源IP地址对应的接口 |
ssh2 source-interface interface-type interface-number |
可选 缺省情况下,没有指定SSH客户端的源IP地址对应的接口 |
当认证方式不同时,SSH客户端与SSH服务器建立连接的方式不同,具体请参见表1-22。
表1-22 建立SSH客户端和服务器端的连接
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
建立SSH客户端和服务器端的连接 |
ssh2 { host-ip | host-name } [ port-num ] [ identity-key { dsa | rsa } | prefer_kex { dh_group1 | dh_exchange_group } | prefer_ctos_cipher { 3des | des | aes128 } | prefer_stoc_cipher { 3des | des | aes128 } | prefer_ctos_hmac { sha1 | sha1_96 | md5 | md5_96 } | prefer_stoc_hmac { sha1 | sha1_96 | md5 | md5_96 } ] * |
必选 该配置用来启动SSH客户端和服务器端建立连接,并指定客户端和服务器的首选密钥交换算法、首选加密算法和首选HMAC算法 注意: l 当采用Password认证方式时,不需要使用identity-key关键字 l 当采用公钥认证方式时,对于identity-key关键字的使用可选 |
如果在服务器端指定客户端的认证方式为公钥认证,当客户端登录服务器端时客户端需要读取本地的私钥进行验证。由于公钥认证可以采用RSA和DSA两种公钥算法,所以需要用identity-key关键字指定采用的公钥算法,才能得到正确的本地私钥数据,否则无法成功登录。
完成上述配置后,在任意视图下执行display命令,可以显示配置SSH后的运行情况。通过查看显示信息,用户可以验证配置的效果。
表1-23 SSH配置显示
操作 |
命令 |
说明 |
查看RSA或DSA密钥对的公钥部分 |
display public-key local { dsa | rsa } public |
display命令可以在任意视图下执行 |
显示远端的公钥信息 |
display public-key peer [ brief | name pubkey-name ] |
|
显示SSH服务器端的状态信息和当前与客户端建立连接的会话信息 |
display ssh server { session | status } |
|
显示已创建的SSH用户信息 |
display ssh user-information [ username ] |
|
显示当前为SSH服务器端设置的源IP地址 |
display ssh-server source-ip |
|
显示客户端保存的服务器端的主机公钥和服务器的对应关系 |
display ssh server-info |
|
显示当前为SSH客户端设置的源IP地址 |
display ssh2 source-ip |
SSH配置新增支持DSA非对称密钥算法后,其中的一些配置命令有所改变,但为了和原来的SSH配置在使用上的兼容,还保留着原来的配置命令,这些配置命令在功能实现上与改变后的命令相同。具体对应关系请参见表1-24。
表1-24 SSH相同功能命令对照表
操作 |
改变前的命令 |
改变后的命令 |
显示RSA密钥对的公钥部分 |
display rsa local-key-pair public |
display public-key local rsa public |
显示远端的公钥信息 |
display rsa peer-public-key [ brief | name keyname ] |
display public-key peer [ brief | name pubkey-name ] |
生成RSA密钥对 |
rsa local-key-pair create |
public-key local create rsa |
销毁RSA密钥对 |
rsa local-key-pair destroy |
public-key local destroy rsa |
进入公共密钥视图 |
rsa peer-public-key keyname |
public-key peer keyname |
从公钥文件中导入SSH用户的RSA公钥 |
rsa peer-public-key keyname import sshkey filename |
public-key peer keyname import sshkey filename |
指定缺省的认证方式为公钥认证,所有创建的SSH用户都使用这个认证方式 |
ssh authentication-type default rsa |
ssh authentication-type default publickey |
在客户端上指定要连接的服务器端的主机公钥名称 |
ssh client { server-ip | server-name } assign rsa-key keyname |
ssh client { server-ip | server-name } assign publickey keyname |
为SSH用户分配公钥 |
ssh user username assign rsa-key keyname |
ssh user username assign publickey keyname |
创建SSH用户,并为该用户配置认证方式为公钥认证 |
ssh user username authentication-type rsa |
ssh user username authentication-type publickey |
l 生成RSA密钥对后,当交换机工作在兼容SSH1.x模式下时,使用display rsa local-key-pair public命令时会显示两个公钥,包括主机公钥和服务器公钥。当交换机工作在SSH2模式时,使用display rsa local-key-pair public命令只显示一个公钥,即主机公钥。
l 由于通过display rsa local-key-pair public命令显示的,或通过SSHKEY工具转换后的主机公钥数据不包含密钥类型等信息,所以不能直接作为参数手工配置到public-key peer命令中。display public-key local rsa public命令显示的主机公钥数据也不能手工配置到rsa peer-public-key命令中。
当用户通过一个不能保证安全的网络远程登录到交换机时,为更大限度地保证数据信息交换的安全性,使用SSH来实现此目的,并采用password认证。如图1-11所示,PC终端(SSH Client)上运行支持SSH2.0的客户端软件,与交换机(SSH Server)建立本地连接。
图1-11 SSH Server采用password认证时的配置组网图
l SSH服务器端配置
# 在交换机上创建VLAN接口,并为其分配IP地址,作为客户端连接的SSH服务器地址。
<Switch> system-view
[Switch] interface vlan-interface 1
[Switch-Vlan-interface1] ip address 192.168.0.1 255.255.255.0
[Switch-Vlan-interface1] quit
生成服务器端的RSA和DSA密钥对是完成SSH登录的必要操作。
# 生成RSA和DSA密钥对。
[Switch] public-key local create rsa
[Switch] public-key local create dsa
# 设置用户接口上的认证模式为AAA认证。
[Switch] user-interface vty 0 4
[Switch-ui-vty0-4] authentication-mode scheme
# 设置用户接口上支持SSH协议。
[Switch-ui-vty0-4] protocol inbound ssh
[Switch-ui-vty0-4] quit
# 创建用户client001,设置认证密码为abc,登录协议为SSH,能访问的命令级别为3。
[Switch] local-user client001
[Switch-luser-client001] password simple abc
[Switch-luser-client001] service-type ssh level 3
[Switch-luser-client001] quit
# 指定用户client001的认证方式为password
[Switch] ssh user client001 authentication-type password
l SSH客户端配置
# 客户端主机配置IP地址
客户端主机的IP地址必须同交换机上的VLAN接口的IP地址位于同一个网段,这里设置为“192.168.0.2”。
# 建立与SSH服务器端的连接
SSH客户端软件的配置(以Putty0.58为例)。
(1) 打开PuTTY.exe程序,出现如下客户端配置界面。
图1-12 SSH客户端配置界面
在“Host Name(or IP address)”文本框中输入SSH服务器的IP地址。
(2) 单击SSH客户端配置界面左边目录树(“Category”)中的连接协议(“Connection”)中的“SSH”,出现如图1-13的界面。
图1-13 SSH客户端配置界面(2)
在“Protocol options”区域中,选择“Preferred SSH protocol version”参数的值为2。
(3) 在图1-13中,单击<Open>按钮,如果连接正常则会提示用户输入用户名client001,密码abc。认证成功后,即可登录到服务器端。
当用户通过一个不能保证安全的网络远程登录到交换机时,为保证数据信息交换的安全性,使用SSH来实现此目的,并采用password远程RADIUS认证。
l PC终端(SSH Client)上运行支持SSH2.0的客户端软件,与交换机(SSH Server)建立本地连接。
l 配置交换机实现RADIUS服务器对登录交换机的SSH用户进行认证。
图1-14 SSH Server采用password远程RADIUS认证时的配置组网图
(1) 配置RADIUS server
本文以CAMS服务器V2.10为例,说明该例中RADIUS server的基本配置。
# 增加接入设备。
登录进入CAMS管理平台,点击左侧菜单树中[系统管理]->[系统配置]的“接入设备配置”->“修改”->“增加”后,进入接入设备配置页面。
l 添加Switch的IP地址192.168.1.70;
l 设置与Switch交互报文时的共享密钥为expert;
l 选择协议类型为LAN接入业务;
l 设置端口列表分别为1812,1813;
l 选择RADIUS协议类型为扩展协议;
l 选择RADIUS报文类型为标准报文。
# 增加设备管理用户。
点击左侧菜单树中[用户管理]->[设备管理用户]的“增加”后,进入设备管理用户配置页面。
l 添加用户名hello和密码;
l 选择服务类型为SSH;
l 添加所管理主机IP地址范围。
图1-15 接入设备配置页面
l 添加设备管理用户页面
(2) SSH服务器端配置
# 在交换机上创建VLAN接口,并为其分配IP地址,作为客户端连接的SSH服务器地址。
<Switch> system-view
[Switch] interface vlan-interface 2
[Switch-Vlan-interface2] ip address 192.168.1.70 255.255.255.0
[Switch-Vlan-interface2] quit
生成服务器端的RSA和DSA密钥对是完成SSH登录的必要操作。
# 生成RSA和DSA密钥对。
[Switch] public-key local create rsa
[Switch] public-key local create dsa
# 设置用户接口上的认证模式为AAA认证。
[Switch] user-interface vty 0 4
[Switch-ui-vty0-4] authentication-mode scheme
# 设置用户接口上支持SSH协议。
[Switch-ui-vty0-4] protocol inbound ssh
[Switch-ui-vty0-4] quit
# 配置RADIUS方案。
[Switch] radius scheme rad
[Switch-radius-rad] accounting optional
[Switch-radius-rad] primary authentication 10.1.1.1 1812
[Switch-radius-rad] key authentication expert
[Switch-radius-rad] server-type extended
[Switch-radius-rad] user-name-format without-domain
[Switch-radius-rad] quit
# 配置ISP域的AAA方案。
[Switch] domain bbb
[Switch-isp-bbb] scheme radius-scheme rad
[Switch-isp-bbb] quit
# 指定用户hello的认证方式为password
[Switch] ssh user hello authentication-type password
l SSH客户端配置
# 客户端主机配置IP地址
客户端主机的IP地址必须同交换机上的VLAN接口的IP地址位于同一个网段,这里设置为“192.168.1.1”。
# 建立与SSH服务器端的连接
SSH客户端软件的配置(以Putty0.58为例)。
(3) 打开PuTTY.exe程序,出现如下客户端配置界面。
图1-16 SSH客户端配置界面
在“Host Name(or IP address)”文本框中输入SSH服务器的IP地址。
(4) 单击SSH客户端配置界面左边目录树(“Category”)中的连接协议(“Connection”)中的“SSH”,出现如图1-16的界面。
图1-17 SSH客户端配置界面(2)
在“Protocol options”区域中,选择“Preferred SSH protocol version”参数的值为2。
在图1-17中,单击<Open>按钮,如果连接正常则会提示用户输入用户名hello及密码。认证成功后,即可登录到服务器端。用户登录系统后所能访问的命令级别由CAMS服务器授权,可通过设备管理用户界面的EXEC权限级别来设置。
当用户通过一个不能保证安全的网络远程登录到交换机时,为保证数据信息交换的安全性,使用SSH来实现此目的,并采用password远程HWTACACS认证。
l PC终端(SSH Client)上运行支持SSH2.0的客户端软件,与交换机(SSH Server)建立本地连接。
l 配置交换机实现HWTACACS服务器对登录交换机的SSH用户进行认证。
图1-18 SSH Server采用password远程HWTACACS认证时的配置组网图
(1) SSH服务器端配置
# 在交换机上创建VLAN接口,并为其分配IP地址,作为客户端连接的SSH服务器地址。
<Switch> system-view
[Switch] interface vlan-interface 2
[Switch-Vlan-interface2] ip address 192.168.1.70 255.255.255.0
[Switch-Vlan-interface2] quit
生成服务器端的RSA和DSA密钥对是完成SSH登录的必要操作。
# 生成RSA和DSA密钥对。
[Switch] public-key local create rsa
[Switch] public-key local create dsa
# 设置用户接口上的认证模式为AAA认证。
[Switch] user-interface vty 0 4
[Switch-ui-vty0-4] authentication-mode scheme
# 设置用户接口上支持SSH协议。
[Switch-ui-vty0-4] protocol inbound ssh
[Switch-ui-vty0-4] quit
# 配置HWTACACS方案。
[Switch] hwtacacs scheme hwtac
[Switch-hwtacacs-hwtac] primary authentication 10.1.1.1 49
[Switch-hwtacacs-hwtac] primary authorization 10.1.1.1 49
[Switch-hwtacacs-hwtac] key authentication expert
[Switch-hwtacacs-hwtac] key authorization expert
[Switch-hwtacacs-hwtac] user-name-format without-domain
[Switch-hwtacacs-hwtac] quit
[Switch] domain bbb
[Switch-isp-bbb] scheme hwtacacs-scheme hwtac
# 指定用户client001的认证方式为password
[Switch] ssh user client001 authentication-type password
l SSH客户端配置
# 客户端主机配置IP地址
客户端主机的IP地址必须同交换机上的VLAN接口的IP地址位于同一个网段,这里设置为“192.168.1.1”。
# 建立与SSH服务器端的连接
SSH客户端软件的配置(以Putty0.58为例)。
(2) 打开PuTTY.exe程序,出现如下客户端配置界面。
图1-19 SSH客户端配置界面
在“Host Name(or IP address)”文本框中输入SSH服务器的IP地址。
(3) 单击SSH客户端配置界面左边目录树(“Category”)中的连接协议(“Connection”)中的“SSH”,出现如图1-20的界面。
图1-20 SSH客户端配置界面(2)
在“Protocol options”区域中,选择“Preferred SSH protocol version”参数的值为2。
在中,单击<Open>按钮,如果连接正常则会提示用户输入用户名client001及密码。认证成功后,即可登录到服务器端。用户登录系统后所能访问的命令级别由HWTACACS服务器授权,有关服务器授权的配置请参见相关HWTACACS服务器配置手册。
当用户通过一个不能保证安全的网络远程登录到交换机时,为更大限度地保证数据信息交换的安全性,使用SSH来实现此目的,并采用公钥认证。如图1-21所示,PC终端(SSH Client)上运行支持SSH2.0的客户端软件,与交换机(SSH Server)建立本地连接。
图1-21 SSH Server采用公钥认证时的配置组网图
采用公钥认证时,可以采用RSA或DSA公钥作为服务器端认证客户端的公钥。这里以RSA公钥为例。
l SSH服务器端配置
# 在交换机上创建VLAN接口,并为其分配IP地址,作为客户端连接的SSH服务器地址。
<Switch> system-view
[Switch] interface vlan-interface 1
[Switch-Vlan-interface1] ip address 192.168.0.1 255.255.255.0
[Switch-Vlan-interface1] quit
生成服务器端的RSA和DSA密钥对是完成SSH登录的必要操作。
# 生成RSA和DSA密钥对。
[Switch] public-key local create rsa
[Switch] public-key local create dsa
# 设置用户接口上的认证模式为AAA认证。
[Switch] user-interface vty 0 4
[Switch-ui-vty0-4] authentication-mode scheme
# 设置用户接口上支持SSH协议。
[Switch-ui-vty0-4] protocol inbound ssh
# 设置用户能访问的命令级别为3。
[Switch-ui-vty0-4] user privilege level 3
[Switch-ui-vty0-4] quit
# 创建用户client001,并指定认证方式为公钥认证。
[Switch] ssh user client001 authentication-type publickey
这里需要先在SSH客户端使用SSH客户端软件生成RSA密钥对,并将生成的RSA公钥保存到指定文件中,再将此公钥文件通过FTP/TFTP方式上传到服务器端,文件名为public。有关配置请参见客户端的配置。
# 在服务器端从文件public中导入客户端的公钥,公钥名为Switch001。
[Switch] public-key peer Switch001 import sshkey public
# 为用户client001指定公钥Switch001。
[Switch] ssh user client001 assign publickey Switch001
l SSH客户端的配置(以Putty0.58为例)。
# 生成密钥对。
运行PuTTYGen.exe,选择要生成的密钥对。此处参数栏选择“SSH2(RSA)”,点击<Generate>,产生客户端密钥对。
图1-22 生成客户端密钥(1)
在产生密钥对的过程中需不停的移动鼠标,鼠标移动仅限于下图蓝色框中除绿色标记进程条外的地方,否则进程条的显示会不动,密钥对将停止产生,见图1-23。
密钥对产生后,点击<save public key>,输入存储公钥的文件名public,点击保存。
图1-24 生成客户端密钥(3)
同理,点击<save private key>存储私钥,弹出警告框,提醒是否保存没做任何保护措施的私钥,点击<Yes>,输入私钥文件名即可,此处为private.ppk,点击保存。
图1-25 生成客户端密钥(4)
客户端生成密钥对后,需要将保存的公钥文件通过FTP/TFTP方式上传到服务器端,并完成服务器端配置后,才可继续客户端的配置。
# 建立与SSH服务器端的连接
(1) 打开PuTTY.exe程序,出现如图1-26所示的客户端配置界面。
图1-26 SSH客户端配置界面(1)
在“Host Name(or IP address)”文本框中输入SSH服务器的IP地址。
(2) 单击SSH客户端配置界面左边目录树(“Category”)中的连接协议(“Connection”)中的“SSH”,出现如图1-27的界面。
图1-27 SSH客户端配置界面(2)
在“Protocol options”区域中,选择“Preferred SSH protocol version”参数的值为2。
(3) 单击“SSH”下面的“Auth”(认证),出现如图1-28的界面。
图1-28 SSH客户端配置界面(2)
单击<Browse…>按钮,弹出文件选择窗口。选择与配置到服务器端的公钥对应的私钥文件,并确定即可。
如图1-28,单击<Open>按钮,如果连接正常则会提示用户输入用户名client001。认证成功后,即可登录到服务器端。
当用户通过交换机远程登录到另一台交换机时,如果通过的网络不能保证安全,为更大限度地保证数据信息交换的安全性,使用SSH来实现此目的,并采用password认证。如图1-29所示:
l 交换机Switch A作为SSH客户端,用来进行SSH登录的用户名为client001。
l 交换机Switch B作为SSH服务器,IP地址为10.165.87.136。
图1-29 SSH客户端采用password认证时的配置组网图
l 配置SwitchB
# 在交换机上创建VLAN接口,并为其分配IP地址,作为客户端连接的SSH服务器地址。
<SwitchB> system-view
[SwitchB] interface vlan-interface 1
[SwitchB-Vlan-interface1] ip address 10.165.87.136 255.255.255.0
[SwitchB-Vlan-interface1] quit
生成服务器端的RSA和DSA密钥对是完成SSH登录的必要操作。
# 生成RSA和DSA密钥对。
[SwitchB] public-key local create rsa
[SwitchB] public-key local create dsa
# 设置用户接口上的认证模式为AAA认证。
[SwitchB] user-interface vty 0 4
[SwitchB-ui-vty0-4] authentication-mode scheme
# 设置用户接口上支持SSH协议。
[SwitchB-ui-vty0-4] protocol inbound ssh
[SwitchB-ui-vty0-4] quit
# 创建用户client001,设置认证密码为abc,登录协议为SSH,能访问的命令级别为3。
[SwitchB] local-user client001
[SwitchB-luser-client001] password simple abc
[SwitchB-luser-client001] service-type ssh level 3
[SwitchB-luser-client001] quit
# 配置SSH用户client001认证方式为password。
[SwitchB] ssh user client001 authentication-type password
l 配置SwitchA
# 在交换机上创建VLAN接口,并为其分配IP地址,作为连接SSH服务器端的SSH客户端地址。
<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
# 建立到服务器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. Do you continue to access it?(Y/N):y
Do you want to save the server's public key?(Y/N):n
Enter password:
当用户通过交换机远程登录到另一台交换机时,如果通过的网络不能保证安全,为更大限度地保证数据信息交换的安全性,使用SSH来实现此目的,并采用公钥认证。如图1-30所示:
l 交换机Switch A作为SSH客户端,用来进行SSH登录的用户名为client001。
l 交换机Switch B作为SSH服务器,IP地址为10.165.87.136。
图1-30 SSH客户端采用公钥认证时的配置组网图
采用公钥认证时,可以采用RSA或DSA公钥作为服务器端认证客户端的公钥。这里以DSA公钥为例。
l 配置SwitchB
# 在交换机上创建VLAN接口,并为其分配IP地址,作为客户端连接的SSH服务器地址。
<SwitchB> system-view
[SwitchB] interface vlan-interface 1
[SwitchB-Vlan-interface1] ip address 10.165.87.136 255.255.255.0
[SwitchB-Vlan-interface1] quit
生成服务器端的RSA和DSA密钥对是完成SSH登录的必要操作。
# 生成RSA和DSA密钥对。
[SwitchB] public-key local create rsa
[SwitchB] public-key local create dsa
# 设置用户接口上的认证模式为AAA认证。
[SwitchB] user-interface vty 0 4
[SwitchB-ui-vty0-4] authentication-mode scheme
# 设置用户接口上支持SSH协议。
[SwitchB-ui-vty0-4] protocol inbound ssh
# 设置用户能访问的命令级别为3。
[SwitchB-ui-vty0-4] user privilege level 3
[SwitchB-ui-vty0-4] quit
# 创建用户client001,并指定认证方式为公钥认证。
[SwitchB] ssh user client001 authentication-type publickey
这里需要先在SSH客户端生成DSA密钥对,并将生成的DSA公钥保存到指定文件中,再将此公钥文件通过FTP/TFTP方式上传到服务器端,文件名为Switch001。有关配置请参见客户端的配置。
# 在服务器端从文件Switch001中导入客户端的公钥,公钥名为Switch001。
[SwitchB] public-key peer Switch001 import sshkey Switch001
# 为用户client001指定公钥Switch001。
[SwitchB] ssh user client001 assign publickey Switch001
l 配置SwitchA
# 在交换机上创建VLAN接口,并为其分配IP地址,作为连接SSH服务器端的SSH客户端地址。
<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
# 将生成的DSA主机公钥导出到指定文件中,文件名为Switch001。
[SwitchA] public-key local export dsa ssh2 Switch001
客户端生成密钥对后,需要将保存的公钥文件通过FTP/TFTP方式上传到服务器端,并完成服务器端配置后,才可继续客户端的配置。
# 建立到服务器10.165.87.136的SSH连接。
[SwitchA] ssh2 10.165.87.136 identity-key dsa
Username: client001
Trying 10.165.87.136 ...
Press CTRL+K to abort
Connected to 10.165.87.136 ...
The Server is not authenticated. Do you continue to access it?(Y/N):y
Do you want to save the server's public key?(Y/N):n
之后,用户就可成功登录到Switch B上。
当用户通过交换机远程登录到另一台交换机时,如果通过的网络不能保证安全,为更大限度地保证数据信息交换的安全性,使用SSH来实现此目的。如图1-31所示:
l 交换机Switch A作为SSH客户端,用来进行SSH登录的用户名为client001。
l 交换机Switch B作为SSH服务器,IP地址为10.165.87.136。
l 采用公钥认证方式,以提高安全性。
图1-31 SSH客户端配置组网图
l 配置SwitchB
# 在交换机上创建VLAN接口,并为其分配IP地址,作为客户端连接的SSH服务器地址。
<SwitchB> system-view
[SwitchB] interface vlan-interface 1
[SwitchB-Vlan-interface1] ip address 10.165.87.136 255.255.255.0
[SwitchB-Vlan-interface1] quit
生成服务器端的RSA和DSA密钥对是完成SSH登录的必要操作。
# 生成RSA和DSA密钥对。
[SwitchB] public-key local create rsa
[SwitchB] public-key local create dsa
# 设置用户接口上的认证模式为AAA认证。
[SwitchB] user-interface vty 0 4
[SwitchB-ui-vty0-4] authentication-mode scheme
# 设置用户接口上支持SSH协议。
[SwitchB-ui-vty0-4] protocol inbound ssh
# 设置用户能访问的命令级别为3。
[SwitchB-ui-vty0-4] user privilege level 3
[SwitchB-ui-vty0-4] quit
# 创建用户client001,并指定认证方式为公钥认证。
[SwitchB] ssh user client001 authentication-type publickey
这里需要先在SSH客户端生成DSA密钥对,并将生成的DSA公钥保存到指定文件中,再将此公钥文件通过FTP/TFTP方式上传到服务器端,文件名为Switch001。有关配置请参见客户端的配置。
# 在服务器端从文件Switch001中导入客户端的公钥,公钥名为Switch001。
[SwitchB] public-key peer Switch001 import sshkey Switch001
# 为用户client001指定公钥Switch001。
[SwitchB] ssh user client001 assign publickey Switch001
# 将服务器端生成的DSA主机公钥导出到指定文件中,文件名为Switch002。
[SwitchB] public-key local export dsa ssh2 Switch002
采用不支持首次认证时,需要将服务器端导出的DSA密钥的公钥文件通过FTP/TFTP方式上传到客户端,文件名为Switch002。
l 配置SwitchA
# 在交换机上创建VLAN接口,并为其分配IP地址,作为连接SSH服务器端的SSH客户端地址。
<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
# 将生成的DSA主机公钥导出到指定文件中,文件名为Switch001。
[SwitchA] public-key local export dsa ssh2 Switch001
客户端生成密钥对后,需要将导出的公钥文件通过FTP/TFTP方式上传到服务器端。并完成服务器端配置后,才可继续客户端的配置。
# 设置不支持首次认证
[SwitchA] undo ssh client first-time
采用不支持首次认证时,需要先在SSH服务器端将SSH服务器端生成的DSA公钥导出到指定文件中,再将此公钥文件通过FTP/TFTP方式上传到客户端,文件名为Switch002。有关配置请参见服务器端的配置。
# 在客户端从文件Switch002中导入服务器端的公钥,公钥名为Switch002。
[SwitchA] public-key peer Switch002 import sshkey Switch002
# 在客户端上指定要连接的服务器端的主机公钥名称。
[SwitchA] ssh client 10.165.87.136 assign publickey Switch002
# 建立到服务器10.165.87.136的SSH连接。
[SwitchA] ssh2 10.165.87.136 identity-key dsa
Username: client001
Trying 10.165.87.136 ...
Press CTRL+K to abort
Connected to 10.165.87.136 ...
之后,用户就可成功登录到Switch B上。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!