35-SSH终端服务操作
本章节下载 (5.75 MB)
目 录
SSH是Secure Shell(安全外壳)的简称。当用户通过一个不能保证安全的网络环境远程登录到交换机时,SSH特性可以提供安全的信息保障和强大的认证功能,以保护交换机不受诸如IP地址欺诈、明文密码截取等攻击。
交换机作为SSH Server,可以接受多个SSH客户的连接。SSH客户端的功能是允许用户与支持SSH Server的交换机、UNIX主机等建立SSH连接。
下面的图1-1和图1-2,分别表示了客户端与服务器端建立SSH通道的两种方式:
l 通过本地局域网连接
l 通过广域网连接
注意:
目前设备支持SSH2和SSH1两个版本,如无特殊说明,文中的SSH均指SSH2。
在整个通讯过程中,为实现SSH认证的安全连接,服务器端与客户端要经历如下五个阶段:
(1) 版本号协商阶段。具体步骤如下:
l 客户端向服务器端发送TCP连接请求。
l TCP连接建立后,服务器端和客户端进行版本号协商。
l 如果协商成功,则进入密钥算法协商阶段,否则服务器端断开TCP连接。
(2) 密钥和算法协商阶段。具体步骤如下:
l 服务器端和客户端分别发送算法协商报文给对端,报文中包含自己支持的服务器端公钥算法列表、加密算法列表、MAC(Message Authentication Code,消息验证码)算法列表、压缩算法列表等。
l 服务器端和客户端根据对端和本端支持的算法列表得出最终使用的算法。
l 利用DH交换(Diffie-Hellman Exchange)算法、主机密钥对等参数,生成会话密钥和会话ID。
通过以上步骤,服务器端和客户端就取得了相同的会话密钥和会话ID。对于后续传输的数据,两端都会使用会话密钥进行加密和解密,保证了数据传送的安全。在认证阶段,两端会使用会话ID用于认证过程。
(3) 认证方法协商阶段:
l 客户端向服务器端发送自己的用户名信息。
l 服务器端启动对该用户的认证。如果服务器端配置了该用户不需要认证,则直接进入会话请求阶段。
l 客户端采用某种认证方法向服务器端进行认证,直到认证通过或服务器由于超时而断开连接。
& 说明:
SSH提供两种认证方法:口令认证和RSA认证。
(1) 口令认证过程如下:
l 客户端将认证用户名和口令发送给服务器端;
l 服务器端对客户端发送过来的用户名及口令与本地配置信息进行比较,如果两者完全匹配,则通过认证。
(2) RSA认证过程如下:
l 服务器端进行客户端的RSA公钥配置;
l 客户端向服务器端发送自己RSA公钥的成员模数;
l 服务器端对此成员模数进行有效性认证,认证通过后产生一个随机数,使用客户端的RSA公钥加密后回送给客户端;
l 服务器端和客户端均以此随机数和会话号作为参数计算出用于认证的数据;
l 客户端将自己计算出来的认证数据发送给服务器端;
l 服务器端将客户端发送过来的认证数据与本地计算出的认证数据进行比较,如果两者相同,则认证通过。
(4) 会话请求阶段:认证通过后,客户端将向服务器端发送会话请求。服务器端成功处理请求后,SSH进入交互会话阶段。
(5) 交互会话阶段:客户端和服务器端进行数据交互,直到会话结束。
SSH服务器端的配置命令包括:
配置项 |
命令关键字 |
说明 |
设置所在用户界面支持的协议 |
protocol inbound |
请参见“配置所在用户界面支持的协议” |
生成本地RSA密钥对 |
rsa local-key-pair create |
请参见“生成或销毁RSA密钥” |
销毁本地RSA密钥对 |
rsa local-key-pair destroy |
|
创建一个SSH用户 |
ssh user username |
请参见“创建一个SSH用户” |
为SSH用户指定一种缺省的认证方式 |
ssh authentication-type default |
请参见“指定用户的认证方式” |
为SSH用户配置认证方式 |
ssh user username authentication-type |
|
设置SSH认证超时时间 |
ssh server timeout |
请参见“配置服务器上的SSH管理功能” |
设置SSH认证重试次数 |
ssh server authentication-retries |
|
设置服务器密钥的更新时间 |
ssh server rekey-interval |
|
设定服务器端兼容SSH1.x版本的客户端 |
ssh server compatible-ssh1x enable |
|
为SSH用户分配公钥 |
ssh user username assign rsa-key keyname |
请参见“为客户端分配公共密钥” |
该配置任务用来指定所在的用户界面支持的协议。
操作 |
命令 |
说明 |
进入系统视图 |
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(采用AAA认证)。
l 如果用户配置了认证方式为authentication-mode password或authentication-mode none,则无法配置protocol inbound ssh;反之,如果配置了protocol inbound ssh,则认证方式无法配置为authentication-mode password或authentication-mode none。
该配置任务用来生成或销毁服务器端的RSA密钥对。RSA密钥的命名方式为交换机名称加上“_Host”和交换机名称加上“_Server”,如:H3C_Host和H3C_Server。
输入rsa local-key-pair create命令后,系统会提示您输入密钥的长度:
l 在SSH1.x中,密钥的长度范围为512~2048位;
l 在SSH2.0中,密钥的长度范围为1024~2048位。为了兼容SSH1.x,允许客户端使用长度为512~2048位的密钥;但在服务器端生成的密钥长度必须大于或等于1024位,否则客户端无法进行认证。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
产生本地RSA密钥 |
rsa local-key-pair create |
必选 |
销毁本地RSA密钥 |
rsa local-key-pair destroy |
可选 |
注意:
l 生成服务器端的RSA密钥对是完成SSH登录的首要操作。
l 此命令只需执行一遍,交换机重启后不必再次执行。
l 如果密钥对在配置前已经存在,则系统会提示是否进行替换。
l 对于由多台设备堆叠形成的Fabric,用户需要先手工配置rsa local-key-pair create命令,以保证Fabric中的所有堆叠设备具有相同的RSA本地密钥对。
& 说明:
配置rsa local-key-pair create命令后:
l 当交换机工作在兼容SSH1.x模式下时,使用display rsa local-key-pair public命令时会显示两个公钥,包括H3C_Host和H3C_Server;
l 当交换机工作在SSH2.0模式时,使用display rsa local-key-pair public命令只显示一个公钥,即H3C_Host。
该配置任务用来创建一个SSH用户。
表1-4 创建一个SSH用户
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建一个SSH用户 |
ssh user username |
必选 |
需要注意的是:通过该方式创建的SSH用户,若没有通过ssh user authentication-type命令单独为这个用户指定认证方式,则该用户采用缺省认证方式。反之,如果不配置SSH的缺省认证方式,则必须单独为这个用户指定认证方式。
该配置任务用来为SSH用户指定认证方式。对于新用户,必须指定其认证方式,否则将无法登录。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
为SSH用户指定一种缺省的认证方式 |
ssh authentication-type default { password | rsa | password-publickey | all } |
二者必选其一 缺省情况下,系统没有指定用户登录时可以选用的认证方式,即SSH用户无法登录 |
为SSH用户配置认证方式 |
ssh user username authentication-type { password | password-publickey | rsa| all } |
需要注意的是:
l ssh authentication-type default命令用来为所有用户配置缺省的认证方式。
l ssh user username authentication-type命令用来为某一用户指定认证方式
当两条命令同时配置,且认证方式不同时,用户username的认证方式以ssh user username authentication-type命令的配置为准。
注意:
l 如果配置为RSA认证方式,则必须在设备上配置客户端用户的RSA公钥。
l 缺省情况下,如果不指定用户的登录认证方式,则用户无法登录。
l 对于password-publickey指定的认证方式:客户端版本为SSH V1的用户只要通过其中一种认证即可登录;客户端版本为SSH V2的用户必须两种认证都通过才能登录。
l 配置password认证时,username应与AAA中定义的有效用户名一致;配置RSA认证时,username就是SSH本地用户名,不需要在AAA中配置本地用户。
l 如果用户配置的缺省认证方式为password,并且采用AAA本地认证,则还需要使用local-user命令在本地数据库中添加用户名和密码。在这种情况下,可以直接使用local-user命令配置的用户名和密码(配置service-type为ssh)登录SSH服务器,省略掉ssh user命令的配置。
l 如果用户配置的缺省认证方式为password,并且采用远程认证,如RADIUS认证,则可以直接使用远程服务器上的用户名和密码登陆SSH服务器,省略掉ssh user命令的配置。
l 使用ssh user username authentication-type 命令为SSH用户指定认证方式时,如果该SSH用户不存在,则系统会自动创建一个SSH用户。
l 如果配置为RSA认证方式,则SSH用户登录服务器后可以访问的命令级别可通过user privilege level命令来配置,且所有使用RSA认证方式的用户可访问的命令级别相同。
l 如果配置为password认证方式,则SSH用户登录服务器后可以访问的命令级别由AAA来授权,使用password认证方式的不同用户,能够访问的命令级别可以不同。
SSH管理功能包括设置认证超时时间、验证重试次数、服务器密钥的更新时间和SSH兼容方式。设置完成后,可以防止恶意猜测密码等非法行为,更大限度地保证用户SSH连接的安全性。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
设置SSH认证超时时间 |
ssh server timeout seconds |
可选 缺省情况下,认证超时时间为60秒 |
设置SSH验证重试次数 |
ssh server authentication-retries times |
可选 缺省情况下,times值为3 |
设置服务器密钥的更新时间 |
ssh server rekey-interval hours |
可选 缺省情况下,系统不更新服务器密钥 |
设定服务器端兼容SSH1.x版本的客户端 |
ssh server compatible-ssh1x enable |
可选 缺省情况下,服务器端兼容SSH1.x版本的客户端 |
& 说明:
本配置适用于对SSH用户采用RSA认证的情况。如果设备上对SSH用户配置的认证方式为口令认证,则不必进行本配置。
本配置任务用来在服务器端对客户端的公钥进行配置。配置客户端公钥有如下两种方式。
(1) 手工配置公钥
客户端的操作:
l 在支持SSH1.5/2.0的客户端软件上,随机生成RSA密钥对;
l 用SSHKEY.EXE软件将RSA密钥对的公钥部分转换为PKCS标准编码形式。
服务器端的操作:
操作 |
命令 |
说明 |
进入系统视图 |
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为已经存在的公共密钥名称。使用该命令为用户分配公钥时,如果此用户已经被分配了公钥,那么,以最后一次分配的公钥为准 |
& 说明:
l 以上方式需要用户在客户端使用软件对公钥进行格式转换,然后在服务器端对转换后的公钥进行手工配置,使用起来相对复杂一些。
l 使用ssh user username assign rsa-key命令为SSH用户分配公共密钥时,如果该SSH用户不存在,则系统会自动创建一个SSH用户。
l 手工配置客户端的公钥时,可将客户端的本地主机公钥数据以拷贝粘贴方式配置到服务器端。
(2) 通过命令实现系统自动配置公钥
客户端的操作:
l 在支持SSH1.5/2.0的客户端软件上,随机生成RSA密钥对;
l 通过FTP/TFTP方式,将公钥文件传送到服务器的Flash中。
服务器端的操作:
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
实现公钥格式的转换及公钥的自动配置 |
rsa peer-public-key keyname import sshkey filename |
密钥文件名filename必须和传送到Flash中的公钥文件名一致 |
& 说明:
以上方式不需要用户手工配置公钥,相对比较简单,建议用户采用。
用户可以通过以下配置,对SSH Server指定源IP地址或者源接口,增加了业务的可管理性。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
为SSH Server指定源IP地址 |
ssh-server source-ip ip-address |
可选 |
为SSH Server指定源接口 |
ssh-server source-interface interface-type interface-number |
可选 |
SSH客户端软件有很多,例如PuTTY、OpenSSH等。SSH客户端要与服务器建立连接,需要做如下基本配置:
l 指定服务器IP地址。
l 选择远程连接协议为SSH。通常客户端可以支持多种远程连接协议,如Telnet、Rlogin、SSH等。要建立SSH连接,必须选择远程连接协议为SSH。
l 选择SSH版本。由于设备目前支持的版本是SSH服务器2.0版本,客户端可以选择2.0或2.0以下版本。
l 指定RSA私钥文件。如果在服务器端配置了SSH用户采用RSA认证,并为SSH用户指定了RSA公钥,就必须在客户端指定与该RSA公钥对应的RSA私钥文件。RSA密钥对是由客户端软件附带的工具生成的。
下面以客户端软件PuTTY、PuTTYGen和SSHKEY为例,说明SSH客户端的配置方法。
运行PuTTYGen.exe,参数栏使用“SSH2(RSA)”,点击<Generate>,产生客户端密钥对。
图1-3 生成客户端密钥(1)
在产生密钥对的过程中需不停的移动鼠标,鼠标移动仅限于下图蓝色框中除绿色标记进程条外的地方,否则进程条的显示会不动,密钥对将停止产生,见图1-4。
图1-4 生成客户端密钥(2)
密钥对产生后,点击<save public key>,输入存储公钥的文件名public,点击保存。
图1-5 生成客户端密钥(3)
同理,点击<save private key>存储私钥,弹出警告框,提醒是否保存没做任何保护措施的私钥,点击<Yes>,输入私钥文件名即可,此处为private,点击保存。
运行SSHKEY.exe,点击<Browse>,选择公钥文件public。然后点击<Convert>,即可生成PKCS编码格式的RSA公钥数据。
图1-7 生成客户端密钥(5)
打开PuTTY.exe程序,出现如下客户端配置界面。
在“Host Name(or IP address)”文本框中输入SSH服务器的IP地址(要求SSH服务器的IP地址与SSH客户端主机的路由可达)。
如图1-8,在“Protocol”选择栏中选择“SSH”。
单击SSH客户端配置界面左边目录树(“Category”)中的连接协议(“Connection”)中的“SSH”,出现如图1-9的界面。
在“Protocol options”区域中,选择“Preferred SSH protocol version”参数的值为2。
& 说明:
对于有些SSH客户端软件,例如Tectia client客户端软件,只有在选择ssh1版本才支持DES算法,选择ssh2版本则不支持DES算法。PuTTY客户端软件在选择了DES后,可以在ssh2版本中支持DES算法协商。
如果用户需要RSA认证,就必须指定RSA私钥文件。如果用户只需要password认证,则不需要指定RSA私钥文件。
如图1-9,单击“SSH”下面的“Auth”(认证),出现如图1-10的界面。
单击<Browse…>按钮,弹出文件选择窗口。选择私钥文件,并确定即可。
(1) 在图1-10中,单击<Open>按钮,出现如图1-11所示的SSH客户端界面,如果连接正常则会提示用户输入用户名及密码。
(2) 输入正确的用户名和密码,即可成功进行SSH登录连接。
(3) 退出登录,执行命令quit即可。
当设备作为SSH客户端和服务器端连接时,可以设置SSH客户端对访问的SSH服务器是否进行首次认证。
l 所谓首次认证,是指当SSH客户端首次访问服务器,而客户端没有配置服务器端的主机公钥时,用户可以选择继续访问该服务器,并在客户端保存该主机公钥;当用户下次访问该服务器时,就以保存的主机公钥来认证该服务器。
l 如果不支持首次认证,则当客户端没有配置服务器端的主机公钥时,客户端将拒绝访问该服务器。用户必须事先将要访问的服务器端的主机公钥配置在本地,同时指定要连接的服务器端的主机公钥名称,以便客户端对连接的服务器进行认证。
此外,客户端可以配置用指定源IP地址或者源接口访问SSH服务器。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
设置对ssh服务器进行首次认证 |
ssh client first-time enable |
可选 缺省情况下,客户端进行首次认证
|
建立SSH客户端和服务器端的连接 |
ssh2 { host-ip | host-name } [ port-num ] [ prefer_kex { dh_group1 | dh_exchange_group } | prefer_ctos_cipher { des | aes128 } | prefer_stoc_cipher { des | aes128 } | prefer_ctos_hmac { sha1 | sha1_96 | md5 | md5_96 } | prefer_stoc_hmac { sha1 | sha1_96 | md5 | md5_96 } ] * |
必选 该配置用来启动SSH客户端和服务器端建立连接,并指定客户端和服务器的首选密钥交换算法、首选加密算法和首选HMAC算法 |
表1-11 配置不支持首次认证的SSH客户端
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
设置SSH客户端对访问的SSH服务器不进行首次认证 |
undo ssh client first-time |
必选 缺省情况下,客户端进行首次认证 |
进入公共密钥视图 |
rsa peer-public-key keyname |
可选 |
进入公共密钥编辑视图 |
public-key-code begin |
- |
配置服务器端的公钥 |
直接输入公钥内容 |
- 在输入公钥内容时,字符之间可以有空格,也可以按回车键继续输入数据,所配置的公钥必须是按公钥格式编码的十六进制字符串 |
退回公共密钥视图 |
public-key-code end |
- 退出视图时,保存输入的公钥数据 |
退回系统视图 |
peer-public-key end |
- |
在客户端上指定要连接的服务器端的主机公钥名称 |
ssh client { server-ip | server-name } assign rsa-key keyname |
必选 |
建立SSH客户端和服务器端的连接,并指定客户端和服务器的首选密钥交换算法、首选加密算法和首选HMAC算法 |
ssh2 { host-ip | host-name } [ port-num ] [ prefer_kex { dh_group1 | dh_exchange_group } | prefer_ctos_cipher { des | aes128 } | prefer_stoc_cipher { des | aes128 } | prefer_ctos_hmac { sha1 | sha1_96 | md5 | md5_96 } | prefer_stoc_hmac { sha1 | sha1_96 | md5 | md5_96 } ] * |
必选 |
用户可以通过以下配置,对SSH2 Client指定源IP地址或者源接口,增加了业务的可管理性。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
为SSH2 Client指定源IP地址 |
ssh2 source-ip ip-address |
可选 |
为SSH2 Client指定源接口 |
ssh2 source-interface interface-type interface-number |
可选 |
完成上述配置后,在任意视图下执行display命令,可以显示配置SSH后的运行情况。通过查看显示信息,用户可以验证配置的效果。
操作 |
命令 |
说明 |
显示服务器端主机密钥对和服务器密钥对的公钥部分 |
display rsa local-key-pair public |
display命令可以在 任意视图下执行 |
显示客户端RSA密钥对的公钥部分 |
display rsa peer-public-key [ brief | name keyname ] |
|
显示SSH状态信息和会话信息 |
display ssh server { status | session } |
|
显示SSH用户信息 |
display ssh user-information [ username ] |
|
显示当前为SSH Server设置的源IP地址 |
display ssh-server source-ip |
|
显示客户端保存的服务器端的主机公钥和服务器的对应关系 |
display ssh server-info |
|
显示当前为SSH2 Client设置的源IP地址 |
display ssh2 source-ip |
如图1-12所示,PC终端(SSH Client)上运行支持SSH2.0的客户端软件,与交换机(SSH Server)建立本地连接,更大限度地保证数据信息交换的安全。
以下将根据登录认证方式的不同分别介绍配置步骤,但开始任何一种配置之前,首先要生成RSA主机密钥对和服务器密钥对。
<H3C>system-view
[H3C] rsa local-key-pair create
其次,必须在交换机上创建VLAN接口,并为其分配IP地址,作为客户端连接的SSH服务器地址。
[H3C] interface vlan-interface 1
[H3C-Vlan-interface1] ip address 192.168.0.1 255.255.255.0
[H3C-Vlan-interface1] quit
最后,客户端主机的IP地址必须同交换机上的VLAN接口的IP地址位于同一个网段,这里设置为“192.168.0.2”。
(1) 设置用户登录认证方式。
下面按照两种认证方式分别进行配置。
第一种方式:password认证。
# 设置用户接口上的认证模式为AAA认证。
[H3C] user-interface vty 0 4
[H3C-ui-vty0-4] authentication-mode scheme
# 设置用户接口上支持SSH协议。
[H3C-ui-vty0-4] protocol inbound ssh
[H3C-ui-vty0-4] quit
# 指定用户client001的登录协议为SSH,能访问的命令级别为3,密码为abc。
[H3C] local-user client001
[H3C-luser-client001] password simple abc
[H3C-luser-client001] service-type ssh level 3
[H3C-luser-client001] quit
[H3C] ssh user client001 authentication-type password
& 说明:
SSH的认证超时时间、重试次数可以采用系统默认值。完成以上配置后,用户就可以在与交换机连接的终端上,运行支持SSH2.0的客户端软件,以用户名client001,密码abc,访问交换机了。
第二种方式:RSA公钥认证。
# 设置用户接口上的认证模式为AAA认证。
[H3C] user-interface vty 0 4
[H3C-ui-vty0-4] authentication-mode scheme
# 设置用户接口上支持SSH协议。
[H3C-ui-vty0-4] protocol inbound ssh
# 设置用户能访问的命令级别为3。
[H3C-ui-vty0-4] user privilege level 3
[H3C-ui-vty0-4] quit
# 指定用户client001的认证方式为RSA。
[H3C] ssh user client001 authentication-type rsa
# 在支持SSH2.0的客户端软件上,随机产生RSA密钥对,并按如下方式将RSA公钥(此处的RSA公钥是指用SSHKEY.EXE软件进行PKCS编码后的16进制字符串)配置到SSH服务器上指定的rsa peer-public-key中。
# 在服务器端配置客户端的公钥,指定公钥名称为Switch001。
[H3C] rsa peer-public-key Switch001
[H3C-rsa-public-key] public-key-code begin
[H3C-rsa-key-code] 308186028180739A291ABDA704F5D93DC8FDF84C427463
[H3C-rsa-key-code] 1991C164B0DF178C55FA833591C7D47D5381D09CE82913
[H3C-rsa-key-code] D7EDF9C08511D83CA4ED2B30B809808EB0D1F52D045DE4
[H3C-rsa-key-code] 0861B74A0E135523CCD74CAC61F8E58C452B2F3F2DA0DC
[H3C-rsa-key-code] C48E3306367FE187BDD944018B3B69F3CBB0A573202C16
[H3C-rsa-key-code] BB2FC1ACF3EC8F828D55A36F1CDDC4BB45504F020125
[H3C-rsa-key-code] public-key-code end
[H3C-rsa-public-key] peer-public-key end
# 如果服务器端是以文件形式存放客户端的公钥,文件名为Switch001,则可以直接从文件中导入。
[H3C] rsa peer-public-key Switch001 import sshkey Switch001
# 为用户client001指定公钥Switch001。
[H3C] ssh user client001 assign rsa-key Switch001
对于RSA认证,不仅需要在客户端上配置SSH服务器的IP地址、协议类型、版本,还需要指定RSA私钥文件(由客户端软件随机产生)。打开SSH连接后按提示输入用户名即可进入交换机的配置界面。
如图1-13所示:
l 交换机Switch A作为SSH客户端,用户名client001;
l 交换机Switch B作为SSH服务器,IP地址为10.165.87.136。
(1) 配置SwitchB
# 要生成RSA主机密钥对和服务器密钥对
<H3C> system-view
[H3C] rsa local-key-pair create
# 在交换机上创建VLAN接口,并为其分配IP地址,作为客户端连接的SSH服务器地址。
[H3C] interface vlan-interface 1
[H3C-Vlan-interface1] ip address 10.165.87.136 255.255.255.0
[H3C-Vlan-interface1] quit
# 设置SSH客户端登录用户界面的认证方式为AAA认证。
[H3C] user-interface vty 0 4
[H3C-ui-vty0-4] authentication-mode scheme
# 设置交换机上远程用户登录协议为SSH。
[H3C-ui-vty0-4] protocol inbound ssh
[H3C-ui-vty0-4] quit
# 指定用户client001的登录协议为SSH,能访问的命令级别为3,密码为abc。
[H3C] local-user client001
[H3C-luser-client001] password simple abc
[H3C-luser-client001] service-type ssh level 3
[H3C-luser-client001] quit
# 配置SSH用户认证方式为password。SSH的认证超时时间、尝试次数以及服务器密钥更新时间可以采取系统缺省值。
[H3C] ssh user client001 authentication-type password
& 说明:
如果配置SSH用户的认证方式为RSA,则需要配置SwitchA的主机公钥。具体配置方法可以参见“1.1.6 SSH Server配置举例”中的配置SSH用户认证方式为RSA。
(2) 配置SwitchA
# SwitchA上的VLAN接口的IP地址必须同SwitchB上的VLAN接口的IP地址位于同一个网段,这里设置为“10.165.87.137”。
<H3C> system-view
[H3C] interface vlan-interface 1
[H3C-Vlan-interface1] ip address 10.165.87.137 255.255.255.0
[H3C-Vlan-interface1] quit
# 建立到服务器10.165.87.136的SSH连接。
[H3C] 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:
*************************************************************************
* Copyright(c) 2004-2007 Hangzhou H3C Tech. Co., Ltd. All rights reserved.*
* Without the owner's prior written consent, *
* no decompiling or reverse-engineering shall be allowed. *
*************************************************************************
<H3C>
SFTP是Secure FTP的简称,是SSH2.0中新增的功能。
SFTP建立在SSH连接的基础之上,它使得远程用户可以安全地登录交换机设备,进行文件管理和文件传送等操作(如进行系统升级),为数据传输提供了更高的安全保障。同时,由于提供了客户端功能,用户可以从本地设备安全登录到远程设备上,进行文件的安全传输。
SFTP服务器端配置包括:
l 配置用户使用的服务类型;
l 启动SFTP服务器;
l 设置用户连接的空闲超时时间
该配置任务用于设定用户可以使用的SSH服务类型。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置用户可以使用的服务类型 |
ssh user username service-type { stelnet | sftp | all } |
可选 缺省情况下,用户可以使用的的服务类型为stelnet |
注意:
使用ssh user username service-type 命令配置用户可以使用的SSH服务类型时,如果该用户不存在,则系统会自动创建一个SSH用户。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
启动SFTP服务器 |
sftp server enable |
必选 缺省情况下,SFTP服务器处于关闭状态 |
当SFTP用户连接的空闲时间超过设定的阈值后,系统会自动断开此用户的连接。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
设置SFTP用户连接的空闲超时时间 |
sftp timeout time-out-value |
必选 缺省情况下,SFTP用户连接的空闲超时时间为10分钟 |
SFTP客户端的配置包括:
操作 |
命令关键字 |
视图 |
说明 |
|
启动SFTP客户端 |
sftp |
系统视图 |
必选 |
|
关闭SFTP客户端 |
bye |
SFTP客户端视图 |
可选 |
|
exit |
||||
quit |
||||
SFTP目录操作 |
改变用户的当前工作目录 |
cd |
SFTP客户端视图 |
可选 |
返回上一级目录 |
cdup |
|||
显示当前工作目录 |
pwd |
|||
显示指定目录下的文件列表 |
dir |
|||
ls |
||||
创建新目录 |
mkdir |
|||
删除目录 |
rmdir |
|||
SFTP文件操作 |
改变服务器上指定的文件的名字 |
rename |
SFTP客户端视图 |
可选 |
下载远程服务器上的文件 |
get |
|||
上传本地文件到远程服务器 |
put |
|||
显示指定目录下的文件列表 |
dir |
|||
ls |
||||
删除服务器上文件 |
delete |
|||
remove |
||||
客户端命令帮助 |
help |
SFTP客户端视图 |
可选 |
该配置任务用来启动SFTP客户端程序,与远程SFTP服务器建立连接,并进入到SFTP client视图。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
启动SFTP客户端 |
sftp { host-ip | host-name } [ port-num ] [ prefer_kex { dh_group1 | dh_exchange_group } | prefer_ctos_cipher { des | aes128 } | prefer_stoc_cipher { des | aes128 } | prefer_ctos_hmac { sha1 | sha1_96 | md5 | md5_96 } | prefer_stoc_hmac { sha1 | sha1_96 | md5 | md5_96 } ] * |
必选 |
该配置任务用来关闭SFTP客户端程序。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入SFTP客户端视图 |
sftp { host-ip | host-name } |
- |
关闭SFTP客户端 |
bye |
bye,exit和quit三条命令的功能相同 |
exit |
||
quit |
SFTP目录操作包括:改变或显示当前的工作目录,创建或删除目录,显示指定目录下的文件或目录信息。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
可选 |
进入SFTP客户端视图 |
sftp { host-ip | host-name } |
|
改变用户的当前工作目录 |
cd remote-path |
|
返回上一级目录 |
cdup |
|
显示用户的当前工作目录 |
pwd |
|
显示指定目录下的文件列表 |
dir [ -a | -l ] [ remote-path ] |
可选 dir和ls两条命令的作用相同 |
ls [ -a | -l ] [ remote-path ] |
||
在服务器上创建新的目录 |
mkdir remote-path |
可选 |
删除服务器上的目录 |
rmdir remote-path&<1-10> |
SFTP文件操作包括:改变文件名、下载文件、上传文件、显示文件列表、删除文件。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
可选 |
进入SFTP客户端视图 |
sftp { host-ip | host-name } |
|
改变服务器上指定的文件的名字 |
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 ] |
||
删除服务器上文件 |
delete remote-file&<1-10> |
可选 delete和remove两条命令的功能相同 |
remove remote-file&<1-10> |
本配置用于显示相关命令的帮助信息,如命令格式,参数配置等。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入SFTP客户端视图 |
sftp { host-ip | host-name } |
- |
显示客户端命令的帮助信息 |
help [ all | command-name ] |
可选 |
用户可以通过以下配置,对SFTP Client指定源IP地址或者源接口,增加了业务的可管理性。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
为sftp client指定源IP地址 |
sftp source-ip ip-address |
可选 |
为sftp client指定源接口 |
sftp source-interface interface-type interface-number |
可选 |
显示当前为SFTP Client设置的源IP地址 |
display sftp source-ip |
可选 可以在任意视图下执行 |
如图2-1,SwitchA和SwitchB之间建立SSH连接,SwitchA作为SFTP客户端登录到SwitchB,进行文件管理和文件传送等操作,用户名为client001、密码为abc。
(1) 配置服务器端Switch B。
<H3C>system-view
[H3C] rsa local-key-pair create
# 在交换机上创建VLAN接口,并为其分配IP地址,作为客户端连接的SSH服务器地址。
[H3C] interface vlan-interface 1
[H3C-Vlan-interface1] ip address 192.168.0.1 255.255.255.0
[H3C-Vlan-interface1] quit
# 设置SSH客户端登录用户界面的认证方式为AAA认证。
[H3C] user-interface vty 0 4
[H3C-ui-vty0-4] authentication-mode scheme
# 设置交换机上远程用户登录协议为SSH。
[H3C-ui-vty0-4] protocol inbound ssh
[H3C-ui-vty0-4] quit
# 创建本地用户client001。
[H3C] local-user client001
[H3C-luser-client001] password simple abc
[H3C-luser-client001] service-type ssh
[H3C-luser-client001] quit
# 配置SSH用户认证方式为password。SSH的认证超时时间、尝试次数以及服务器密钥更新时间可以采取系统默认值。
[H3C] ssh user client001 authentication-type password
& 说明:
如果配置SSH用户的认证方式为RSA,则需要配置SwitchA的主机公钥。具体配置方法可以参见“1.1.6 SSH Server配置举例”中的配置SSH用户认证方式为RSA。
# 指定用户的服务类型为SFTP。
[H3C] ssh user client001 service-type sftp
# 启动SFTP服务器。
[H3C] sftp server enable
(2) 配置客户端Switch A。
# SwitchA上的VLAN接口的IP地址必须同SwitchB上的VLAN接口的IP地址位于同一个网段,这里设置为“192.168.0.2”。
<H3C> system-view
[H3C] interface vlan-interface 1
[H3C-Vlan-interface1] ip address 192.168.0.2 255.255.255.0
[H3C-Vlan-interface1] quit
# 与远程SFTP服务器建立连接,进入SFTP client视图。
[H3C] sftp 192.168.0.1
Input Username: client001
Trying 192.168.0.1 ...
Press CTRL+K to abort
Connected to 192.168.0.1 ...
The Server is not authenticated. Do you continue access it? [Y/N]:y
Do you want to save the server's public key? [Y/N]:n
Enter password:
sftp-client>
# 显示服务器的当前目录,删除文件z,并检查此目录是否删除成功。
sftp-client> dir
-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 pubkey1
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-client> delete z
The following files will be deleted:
flash:/z
Are you sure to delete it?(Y/N):y
This operation may take a long time.Please wait...
File successfully Removed
sftp-client> dir
-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 pubkey1
drwxrwxrwx 1 noone nogroup 0 Sep 01 06:22 new
-rwxrwxrwx 1 noone nogroup 225 Sep 01 06:55 pub
# 新增目录new1,并检查新目录是否创建成功。
sftp-client> mkdir new1
New directory created
sftp-client> dir
-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 pubkey1
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-client> rename new1 new2
File successfully renamed
sftp-client> dir
-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 pubkey1
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。
sftp-client> get pubkey2 public
This operation may take a long time, please wait...
Remote file:flash:/pubkey2 ---> Local file: public..
Downloading file successfully ended
# 将本地文件pu上传到服务器上,更名为puk,并查看上传是否成功。
sftp-client> put pu puk
This operation may take a long time, please wait...
Local file: pu ---> Remote file: flash:/puk
Uploading file successfully ended
sftp-client> dir
-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 pubkey1
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-client>
# 退出SFTP。
sftp-client> quit
Bye
[H3C]
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!