28-SSH终端服务操作
本章节下载 (5.68 MB)
目 录
SSH是Secure Shell(安全外壳)的简称。用户通过一个不能保证安全的网络环境远程登录到设备时,SSH特性可以提供安全保障和强大的认证功能,以保护设备不受诸如IP地址欺诈、明文密码截取等攻击。
设备支持SSH服务器功能,可以接受多个SSH客户端的连接。同时,设备还支持SSH客户端功能,允许用户与支持SSH服务器功能的设备建立SSH连接,从而实现从本地设备通过SSH登录到远程设备上。如图1-1、图1-2所示,可以通过本地连接或广域网连接建立SSH通道。
注意:
目前设备支持SSH2和SSH1两个版本,如无特殊说明,文中的SSH均指SSH2。
在整个通讯过程中,为实现SSH的安全连接,服务器端与客户端要经历如下五个阶段:
(1) 版本号协商阶段
具体步骤如下:
l 服务器打开端口22,等待客户端连接。
l 客户端向服务器端发起TCP初始连接请求,TCP连接建立后,服务器向客户端发送第一个报文,包括版本标志字符串,格式为“SSH-<主协议版本号>.<次协议版本号>-<软件版本号>”,协议版本号由主版本号和次版本号组成,软件版本号主要是为调试使用。
l 客户端收到报文后,解析该数据包,如果服务器端的协议版本号比自己的低,且能支持服务器端的低版本,就使用服务器端的低版本协议号,否则使用自己的协议版本号。
l 客户端回应服务器一个报文,包含了客户端决定使用的协议版本号。服务器比较客户端发来的版本号,决定是否能同客户端一起工作。
l 如果协商成功,则进入密钥和算法协商阶段,否则服务器端断开TCP连接。
& 说明:
上述报文都是采用明文方式传输的。
(2) 密钥和算法协商阶段
具体步骤如下:
l 服务器端和客户端分别发送算法协商报文给对端,报文中包含自己支持的服务器端公钥算法列表、加密算法列表、MAC(Message Authentication Code,消息验证码)算法列表、压缩算法列表等。
l 服务器端和客户端根据对端和本端支持的算法列表得出最终使用的算法。
l 利用DH交换(Diffie-Hellman Exchange)算法、主机密钥对等参数,生成会话密钥和会话ID。
通过以上步骤,服务器端和客户端就取得了相同的会话密钥和会话ID。对于后续传输的数据,两端都会使用会话密钥进行加密和解密,保证了数据传送的安全。在认证阶段,两端会使用会话ID用于认证过程。
注意:
在协商阶段之前,在服务器端已经生成服务器密钥对和主机密钥对,他们主要用于参与会话密钥的生成。其中,服务器密钥对只适用于SSH1。
(3) 认证阶段
客户端向服务器端发送认证请求报文,认证请求中包含用户名、认证方法等相关内容,服务器端启动对该用户进行认证的程序。
SSH提供两种认证方法:
l password认证:客户端向服务器发出password认证请求,将用户名和密码加密后发送给服务器;服务器将该信息解密后得到用户名和密码的明文,与设备上保存的用户名和密码进行比较,并返回认证成功或失败的消息。
l RSA认证:客户端发送RSA认证请求和自己的公钥模数给服务器端;服务器进行合法性检查,如果不合法,则直接发送失败消息,否则产生一个32字节的随机数,按MSB(Most Significant Bit,最高位)优先排列成一个MP型整数,并用客户端的公钥加密后向客户端发起一个认证挑战;客户端收到挑战消息后用自己的私钥解密得到MP型整数,用它和会话ID(密钥和算法协商阶段生成的中间产物)生成消息摘要MD5值,把这个16字节的MD5值加密后发送给服务器;服务器接收后还原出MD5值并与它自己计算出的MD5值相比较,如果相同,认证成功,发送成功消息;否则失败,发送失败消息。
& 说明:
除了password认证和RSA认证,SSH2.0还提供了password-publickey认证和all认证。
l password-publickey认证:指定该用户的认证方式为password和RSA认证同时满足。客户端版本为SSH1的用户只要通过其中一种认证即可登录;客户端版本为SSH2的用户必须两种认证都通过才能登录。
l all认证:指定该用户的认证方式可以是password也可以是RSA,客户端首先尝试使用RSA方式登录。
(4) 会话请求阶段
认证通过后,客户端向服务器发送会话请求。服务器等待并处理客户端的请求。在这个阶段,请求被成功处理后,服务器会向客户端回应SSH_SMSG_SUCCESS包,SSH进入交互会话阶段;否则回应SSH_SMSG_FAILURE包,表示服务器处理请求失败或者不能识别请求。
(5) 交互会话阶段
会话请求成功后,连接进入交互会话阶段。在这个模式下,数据被双向传送。客户端将要执行的命令加密后传给服务器,服务器接收到报文,解密后执行该命令,将执行的结果加密发还给客户端,客户端将接收到的结果解密后显示到终端上。
& 说明:
l 在交互会话阶段,客户端可以通过粘贴文本会话的方式发送要执行的命令,但文本会话不能超过2000字节,且粘贴的命令必须是同一视图下的命令,否则服务器可能无法正确执行该命令。
l 如果粘贴的文本会话超过2000字节,可以采用将配置文件上传到服务器,利用新的配置文件重新启动的方式执行这些命令。
配置任务 |
说明 |
详细配置 |
|
配置SSH服务器 |
启动SSH服务器 |
必选 |
|
配置SSH客户端登录时的用户界面所支持的协议 |
可选 |
||
生成、销毁或导出RSA密钥 |
必选 |
||
配置SSH用户的认证方式 |
可选 |
||
配置SSH用户的服务类型 |
可选 |
||
配置服务器上的SSH管理功能 |
可选 |
||
配置客户端的RSA公钥 |
可选 |
||
配置SSH客户端 |
可选 |
||
配置设备作为SSH客户端 |
可选 |
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
启动SSH服务器 |
ssh server enable |
必选 缺省情况下,SSH服务器功能处于关闭状态 |
启动SSH服务器后,必须设置系统支持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 password和authentication-mode none将失败。
生成服务器端的RSA密钥是完成SSH登录的必要操作。在使能SSH的情况下,如果没有生成RSA主机密钥对和服务器密钥对,仍然不能通过SSH登录。
对于已经生成的RSA密钥对,可以根据指定格式在屏幕上显示RSA主机公钥或导出RSA主机公钥到指定文件,从而为在远端配置RSA主机公钥作准备。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
生成RSA主机密钥对和服务器密钥对 |
rsa local-key-pair create |
必选 |
注意:
在使能SSH的情况下,如果没有生成RSA主机密钥对和服务器密钥对,仍然不能通过SSH登录。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
销毁RSA主机密钥对和服务器密钥对 |
rsa local-key-pair destroy |
可选 |
操作 |
命令 |
说明 |
根据指定格式在屏幕上显示RSA主机公钥或导出RSA主机公钥到指定文件 |
rsa local-key-pair export { ssh1 | ssh2 | openssh } [ filename ] |
可选 该命令可在任意视图下执行 |
注意:
l rsa local-key-pair create命令只需执行一遍,交换机重启后不必再次执行。
l 服务器密钥和主机密钥的最小长度为512位,最大长度为2048位。在SSH2中,有的客户端要求服务器端生成的密钥长度必须大于或等于768位。
l 如果已配置过密钥对,再次配置时系统会提示是否进行替换。
配置的认证方式在下次登录时生效。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
为SSH用户配置认证方式 |
ssh user username authentication-type { password | rsa | password-publickey | all } |
可选 缺省情况下,系统指定用户的认证方式为RSA认证 |
注意:
对于使用RSA认证方式的用户,必须在设备上配置相应的用户及其公钥。对于使用password认证方式的用户,用户的账号信息可以配置在设备或者远程认证服务器(如RADIUS认证服务器)上。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
为某一特定的用户指定服务类型 |
ssh user username service-type { stelnet | sftp | all } |
必选 缺省情况下,系统缺省的服务类型为stelnet |
注意:
l 进行SFTP登录时,必须设置用户的服务类型为sftp或者all。
l 不需要使用SFTP服务时,SSH用户的类型设置为stelnet或者all。
SSH的管理功能包括:
l 设置SSH服务器是否兼容SSH1
l 设置服务器密钥的定时更新时间
l 设置SSH认证的超时时间
l 设置SSH用户请求连接的认证尝试次数
通过定时更新服务器密钥以及对用户认证时间、认证次数的限制,可以防止恶意地对密钥和用户名的猜测和破解,从而提高了SSH连接的安全性。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
设置SSH服务器是否兼容SSH1 |
ssh server compatible-ssh1x enable |
可选 缺省情况下,SSH服务器兼容SSH1 |
设置服务器密钥对的更新时间 |
ssh server rekey-interval hours |
可选 缺省情况下,系统不更新服务器密钥对 |
设置SSH用户的认证超时时间 |
ssh server authentication-timeout time-out-value |
可选 缺省情况下,SSH用户的认证超时时间为60秒 |
设置SSH认证尝试次数 |
ssh server authentication-retries times |
可选 缺省情况下,SSH连接认证尝试次数为3次 |
本配置适用于对SSH用户采用RSA认证的情况。如果设备上对SSH用户配置的认证方式为password认证,则不必进行本配置。
在设备上配置的是客户端SSH用户的RSA公钥。而在客户端,需要为该SSH用户指定与RSA公钥对应的RSA私钥。客户端的密钥对是由支持SSH的客户端软件随机生成的。
可以通过手工配置和从公钥文件中导入这两种方式来配置客户端的RSA公钥。当用户执行从公钥文件中导入客户端RSA公钥的命令时,系统会自动对由客户端软件生成的公钥文件进行格式转换(转换为PKCS标准编码形式,Public Key Cryptography Standards,公共密钥加密标准),并实现客户端公钥的配置。这种方式需要客户端事先将RSA密钥的公钥文件通过FTP/TFTP方式上传到服务器端。
注意:
l 设备作为SSH服务器时,无法通过Secure CRT 4.07将客户端公钥上传到服务器端。
l 可以通过配置ssh user assign rsa-key、ssh user authentication-type、ssh user service-type中的任何一条命令来创建SSH用户,SSH用户最多只能创建1024个,其缺省配置认证方式为RSA,服务类型为stelnet。
l 如果没有创建SSH用户,只要本地用户存在,且设置的服务类型为SSH,则SSH客户端仍然可以通过该用户登录SSH服务器,此时缺省认证方式为password认证,SSH服务类型为stelnet。
操作 |
命令 |
说明 |
进入系统视图 |
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为已经存在的公共密钥名称。使用该命令为用户分配公钥时,如果此用户已经被分配了公钥,则以最后一次分配的公钥为准 |
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
从公钥文件中导入SSH用户的RSA公钥 |
rsa peer-public-key keyname import sshkey filename |
必选 |
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密钥对是由客户端软件附带的工具生成的。
下面以客户端软件PuTTY、PuTTYGen和SSHKEY为例,说明SSH客户端的配置方法。
运行PuTTYGen.exe,参数栏使用“SSH2(RSA)”,点击<Generate>,产生客户端密钥对。
在产生密钥对的过程中需不停的移动鼠标,鼠标移动仅限于下图蓝色框中除绿色标记进程条外的地方,否则进程条的显示会不动,密钥对将停止产生,见图1-4。
密钥对产生后,点击<save public key>,输入存储公钥的文件名public,点击保存。
同理,点击<save private key>存储私钥,弹出警告框,提醒是否保存没做任何保护措施的私钥,点击<Yes>,输入私钥文件名即可,此处为private,点击保存。
运行SSHKEY.exe,点击<Browse>,选择公钥文件public。然后点击<Convert>,即可生成PKCS编码格式的RSA公钥数据。
打开PuTTY.exe程序,出现如下客户端配置界面。
在“Host Name(or IP address)”文本框中输入SSH服务器的IP地址(要求SSH服务器的IP地址与SSH客户端主机的路由可达),如10.110.28.10。
如图1-8,在“Protocol”选择栏中选择“SSH”。
单击SSH客户端配置界面左边目录树(“Category”)中的连接协议(“Connection”)中的“SSH”,出现如图1-9的界面。
在“Protocol options”区域中,选择“Preferred SSH protocol version”参数的值为2。
如果用户需要RSA认证,就必须指定RSA私钥文件。如果用户只需要password认证,则不需要指定RSA私钥文件。
如图1-9,单击“SSH”下面的“Auth”(认证),出现如图1-10的界面。
单击<Browse…>按钮,弹出文件选择窗口。选择私钥文件,并确定即可。
(1) 在图1-10中,单击<Open>按钮,出现如图1-11所示的SSH客户端界面,如果连接正常则会提示用户输入用户名及密码。
(2) 输入正确的用户名和密码,即可成功进行SSH登录连接。
(3) 退出登录,执行命令quit即可。
已经完成SSH服务器的配置,具体配置步骤请参见“1.3 配置SSH服务器”。
当设备作为SSH客户端和服务器端连接时,可以设置SSH客户端对访问的SSH服务器是否进行首次认证。
l 所谓首次认证,是指当SSH客户端首次访问服务器,而客户端没有配置服务器端的主机公钥时,用户可以选择继续访问该服务器,并在客户端保存该主机公钥;当用户下次访问该服务器时,就以保存的主机公钥来认证该服务器。
l 如果不支持首次认证,则当客户端没有配置服务器端的主机公钥时,客户端将被拒绝访问该服务器。用户必须事先将要访问的服务器端的主机公钥配置在本地,同时指定要连接的服务器端的主机公钥名称,以便客户端对连接的服务器进行认证。
此外,客户端可以配置用指定的IP地址或端口地址访问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 authentication server { server-ip | server-name } assign rsa-key keyname |
可选 |
|
为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 } |
||
建立SSH客户端和服务器端的连接,并指定客户端和服务器的首选密钥交换算法、首选加密算法和首选HMAC算法 |
建立SSH客户端和IPv4服务器端的连接,并指定客户端和服务器的首选密钥交换算法、首选加密算法和首选HMAC算法 |
ssh2 { host-ip | host-name } [ port-number ] [ 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客户端和IPv6服务器端的连接,并指定客户端和服务器的首选密钥交换算法、首选加密算法和首选HMAC算法 |
ssh2 ipv6 { ipv6-address | host-name } [ port-number ] [ prefer_ctos_cipher { aes128 | des } | prefer_ctos_hmac { md5 | md5_96 | sha1 | sha1_96 } | prefer_kex { dh_exchange_group | dh_group1 } | prefer_stoc_cipher { aes128 | des } | prefer_stoc_hmac { md5 | md5_96 | sha1 | sha1_96 } ] * |
在完成上述配置后,在任意视图下执行display命令,可以显示配置后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 ] |
显示客户端保存的服务器端的主机公钥和服务器的对应关系 |
display ssh server-info |
显示当前为SSH服务器设置的源IP地址或者源接口 |
display ssh client source |
显示当前为SFTP客户端设置的源IP地址或者源接口 |
display sftp client source |
如图1-12,配置终端(SSH客户端)与以太网交换机建立本地连接。终端采用SSH协议进行登录到交换机上,以保证数据信息交换的安全。SSH客户端的用户名为client001、密码为aabbcc。
以下将根据登录认证方式的不同分别介绍配置步骤,但开始任何一种配置之前,首先要生成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
& 说明:
如果已完成生成RSA主机密钥对和服务器密钥对的配置,可以略过本步骤。
其次,必须在交换机上创建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认证。(AAA认证采用缺省ISP域system、缺省认证方案local)
[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的认证超时时间、尝试次数以及服务器密钥更新时间可以采取系统默认值。
这些配置完成以后,需要在与交换机连接的终端上运行支持SSH2.0的客户端软件,配置SSH服务器(交换机)可达接口的IP地址192.168.0.1,协议类型为SSH,版本为2。打开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
# 设置交换机上远程用户client001的认证方式为RSA。
[Sysname] ssh user client001 authentication-type rsa
这时需要在支持SSH2.0的客户端软件上,随机产生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私钥的终端上运行支持SSH2.0的客户端软件,进行相应的配置,即可建立SSH连接了。
如图1-13,配置SwitchA作为客户端,采用SSH协议登录到SwitchB上。SSH客户端的用户名为client001,密码为aabbcc。
(1) 配置SwitchB
# 要生成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
& 说明:
如果已完成生成RSA主机密钥对和服务器密钥对的配置,可以略过本步骤。
# 在交换机上创建VLAN接口,并为其分配IP地址,作为客户端连接的SSH服务器地址。
[Sysname] interface Vlan-interface 1
[Sysname-Vlan-interface1] ip address 10.165.87.136 255.255.255.0
[Sysname-Vlan-interface1] quit
# 设置SSH客户端登录用户界面的认证方式为AAA认证。(AAA认证采用缺省ISP域system、缺省认证方案local)
[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的认证超时时间、尝试次数以及服务器密钥更新时间可以采取系统缺省值。
& 说明:
如果配置SSH用户的认证方式为RSA,则需要配置SwitchA的主机公钥。具体配置方法可以参见“1.7 SSH典型配置举例”中的配置SSH用户认证方式为RSA。
(2) 配置SwitchA
# SwitchA上的VLAN接口的IP地址必须同SwitchB上的VLAN接口的IP地址位于同一个网段,这里设置为“10.165.87.137”。
<Sysname> system-view
[Sysname] interface Vlan-interface 1
[Sysname-Vlan-interface1] ip address 10.165.87.137 255.255.255.0
[Sysname-Vlan-interface1] quit
# 采用password认证,按照缺省的加密算法启动。
[Sysname] 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 autherncated.Do you continue access it?(Y/N):y
Do you want to save the server's public key?(Y/N):y
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. *
**************************************************************************
<Sysname>
SFTP是Secure FTP的简称,是SSH 2.0中新增的功能。
SFTP建立在SSH连接的基础之上,它使得远程用户可以安全地登录设备,进行文件管理和文件传送等操作,为数据传输提供了更高的安全保障。同时,由于设备支持作为客户端的功能,用户可以从本地设备安全登录到远程设备上,进行文件的安全传输。
l 已经完成SSH服务器的配置,具体配置步骤请参见“1.2 SSH配置任务简介”。
l SSH用户的服务类型设置为sftp或者all。具体配置步骤请参见“1.3.5 配置SSH用户的服务类型”。
该配置任务用于启动SFTP服务,使客户端能用SFTP的方式登录到服务器。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
启动SFTP服务器 |
sftp server enable |
必选 缺省情况下,SFTP服务器处于关闭状态 |
& 说明:
设备作为SFTP服务器时,同时只能有一个用户访问SFTP服务器。如果以WinSCP作为SFTP客户端,则无法直接编辑服务器上的文件,需要采用将服务器上的文件下载到本地,在本地修改后上传到服务器的方式实现对文件的编辑。
当SFTP用户连接的空闲时间超过设定的阈值后,系统会自动断开此用户的连接。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
设置SFTP用户连接的空闲超时时间 |
sftp server idle-timeout time-out-value |
可选 缺省情况下,SFTP用户连接的空闲超时时间为10分钟 |
客户端用指定的IP地址或端口地址访问SFTP服务器。
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
为SFTP 客户端指定源IP地址或指定源接口 |
为SFTP客户端指定源IPv4地址或源接口 |
sftp client source { ip ip-address | interface interface-type interface-number } |
可选 缺省情况下,客户端用设备路由指定的端口地址访问SFTP服务器 |
为SFTP客户端指定源IPv6地址或源接口 |
sftp client ipv6 source { ipv6 ipv6-address | interface interface-type interface-number } |
该配置任务用来启动SFTP客户端程序,与远程SFTP服务器建立连接,并进入到SFTP客户端视图。
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
与远程SFTP服务器建立连接,并进入SFTP 客户端视图 |
与远程IPv4 SFTP服务器建立连接,并进入SFTP客户端视图 |
sftp { host-ip | host-name } [ port-number ] [ 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 } ]* |
必选其一 |
与远程IPv6 SFTP服务器建立连接,并进入SFTP客户端视图 |
sftp ipv6 { ipv6-address | host-name } [ port-number ] [ prefer_ctos_cipher { aes128 | des } | prefer_ctos_hmac { md5 | md5_96 | sha1 | sha1_96 } | prefer_kex { dh_exchange_group | dh_group1 } | prefer_stoc_cipher { aes128 | des } | prefer_stoc_hmac { md5 | md5_96 | sha1 | sha1_96 } ] * |
SFTP目录操作包括:改变或显示当前的工作目录、显示指定目录下的文件或目录信息、改变服务器上指定的文件夹的名字、创建或删除目录。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
与远程SFTP服务器建立连接,并进入SFTP 客户端视图 |
sftp { host-ip | host-name } [ port-number ] [ 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服务器上指定的目录的名字 |
rename old-name new-name |
可选 各个命令没有先后顺序关系,根据具体情况执行,dir和ls两条命令的作用相同 |
改变远程SFTP服务器上的工作路径 |
cd [ remote-path ] |
|
返回上一级目录 |
cdup |
|
显示远程SFTP服务器上的当前工作目录 |
pwd |
|
显示指定目录下的文件列表 |
dir [ -a | -l ] [ remote-path ] |
|
ls [ -a | -l ] [ remote-path ] |
||
在远程SFTP服务器上创建新的目录 |
mkdir remote-path |
|
删除SFTP服务器上指定的目录 |
rmdir remote-path&<1-10> |
SFTP文件操作包括:改变文件名、下载文件、上传文件、显示文件列表、删除文件。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
与远程SFTP服务器建立连接,并进入SFTP 客户端视图 |
sftp { host-ip | host-name } [ port-number ] [ 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服务器上指定的文件的名字 |
rename old-name new-name |
可选 |
从远程服务器上下载文件并存储在本地 |
get remote-file [ local-file ] |
可选 |
将本地的文件上传到远程SFTP服务器 |
put local-file [ remote-file ] |
可选 |
查询指定目录下的文件 |
dir [ -a | -l ] [ remote-path ] |
可选 dir和ls两条命令的作用相同 |
ls [ -a | -l ] [ remote-path ] |
||
删除SFTP服务器上指定的文件 |
delete remote-file&<1-10> |
可选 delete和remove两条命令的功能相同 |
remove remote-file&<1-10> |
本配置用于显示命令的帮助信息,如命令格式,参数配置等。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
与远程SFTP服务器建立连接,并进入SFTP 客户端视图 |
sftp { host-ip | host-name } [ port-number ] [ 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客户端命令的帮助信息 |
help [all | command-name ] |
可选 |
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
与远程SFTP服务器建立连接,并进入SFTP 客户端视图 |
sftp { host-ip | host-name } [ port-number ] [ 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服务器的连接,并退回到系统视图 |
bye |
必选其一 bye,exit和quit三条命令的功能相同 |
exit |
||
quit |
如图2-1,Switch A和Switch B之间建立SSH连接,SwitchA作为SFTP客户端登录到SwitchB,进行文件管理和文件传送等操作,用户名为client001,密码为aabbcc。
(1) 配置服务器端Switch B
# 要生成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
& 说明:
如果已完成生成RSA主机密钥对和服务器密钥对的配置,可以略过本步骤。
# 在交换机上创建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
# 设置SSH客户端登录用户界面的认证方式为AAA认证。(AAA认证采用缺省ISP域system、缺省认证方案local)
[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的认证超时时间、尝试次数以及服务器密钥更新时间可以采取系统默认值。
& 说明:
如果配置SSH用户的认证方式为RSA,则需要配置SwitchA的主机公钥。具体配置方法可以参见1.7 “SSH典型配置举例”中的配置SSH用户认证方式为RSA。
# 指定用户的服务类型为SFTP。
[Sysname] ssh user client001 service-type sftp
# 启动SFTP服务器。
[Sysname] sftp server enable
(2) 配置客户端Switch A
# SwitchA上的VLAN接口的IP地址必须同SwitchB上的VLAN接口的IP地址位于同一个网段,这里设置为“192.168.0.2”。
<Sysname> system-view
[Sysname] interface Vlan-interface 1
[Sysname-Vlan-interface1] ip address 192.168.0.2 255.255.255.0
[Sysname-Vlan-interface1] quit
# 与远程SFTP服务器建立连接,进入SFTP Client视图。
[Sysname] 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]:y
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:
/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
Remote file:/pubkey2 ---> Local file: public..
Downloading file successfully ended
# 将本地文件pu上传到服务器上,更名为puk,并查看上传是否成功。
sftp-client> put pu puk
Local file: pu ---> Remote file:/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
[Sysname]
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!