01-S12500_SSH典型配置举例
本章节下载: 01-S12500_SSH典型配置举例 (402.59 KB)
目 录
3 设备作为Stelnet服务器配置举例(password认证)
3.5.2 Stelnet客户端建立与Stelnet服务器的连接
4 设备作为Stelnet服务器配置举例(publickey认证)
4.5.3 Stelnet客户端建立与Stelnet服务器的连接
5 设备作为Stelnet客户端配置举例(password认证)
5.5.2 Stelnet客户端建立与Stelnet服务器的连接
6 设备作为Stelnet客户端配置举例(publickey认证)
6.5.3 Stelnet客户端建立与Stelnet服务器的连接
8 设备作为SFTP客户端配置举例(publickey认证)
SSH是Secure Shell(安全外壳)的简称,是一种在不安全的网络环境中,通过加密机制和认证机制,实现安全的远程访问以及文件传输等业务的网络安全协议。设备作为SSH服务器时,支持SSH2和SSH1两个版本;设备作为SSH客户端时,只支持SSH2版本。
本文档介绍了两种SSH应用:Stelnet (Secure Telnet)和SFTP(Secure FTP)。
设备作为SSH服务器可提供以下四种对客户端的认证方式:
· password认证:利用AAA对客户端身份进行认证。
· publickey认证:采用数字签名的方式来认证客户端。
· password-publickey认证:对于SSH2版本的客户端,要求同时进行password和publickey两种方式的认证;对于SSH1版本的客户端,只要通过其中任意一种认证即可。
· any认证:不指定客户端的认证方式,客户端可采用password认证或publickey认证,且只要通过其中任何一种认证即可。
本文档中的配置均是在实验室环境下进行的配置和验证,配置前设备的所有参数均采用出厂时的缺省配置。如果您已经对设备进行了配置,为了保证配置效果,请确认现有配置和以下举例中的配置不冲突。
本文假设您已了解SSH特性。
如图1所示,Host(Stelnet客户端)与Switch(Stelnet服务器)建立本地连接。要求:Switch采用本地认证的方式认证用户,Host采用SSH协议登录到Switch上,以保证数据信息交换的安全。SSH服务器采用的认证方式为password认证,登录用户名为client001,密码为aabbcc,用户登录设备后可以正常使用所有命令。
图1 设备作为Stelnet服务器配置组网图
· 因为采用本地认证的方式认证用户,所以只需在本地Stelnet服务器Switch上创建相应的本地用户,并在本地用户视图下配置密码,而不需要创建SSH用户。
· 对于本地认证,Stelnet用户登录后所能操作的命令权限由本地用户的用户角色决定。因为Stelnet用户登录设备后要能正常使用所有命令,所以将用户角色设置为network-admin,缺省情况下本地用户的用户角色为network-operator。
本举例是在S12500-CMW710-R7129版本上进行配置和验证的。
· SSH用户登录的用户界面的认证方式必须配置为scheme方式。
· 为了保证SSH的版本协商和算法协商过程正常运行,请在服务器端配置生成RSA和DSA密钥对。
# 生成RSA密钥对。
<Switch> system-view
[Switch] public-key local create rsa
The range of public key size is (512 ~ 2048).
If the key modulus is greater than 512, it will take a few minutes.
Press CTRL+C to abort.
Input the modulus length [default = 1024]:
Generating Keys...
........................++++++
...................++++++
..++++++++
............++++++++
# 生成DSA密钥对。
[Switch] public-key local create dsa
The range of public key size is (512 ~ 2048).
If the key modulus is greater than 512, it will take a few minutes.
Press CTRL+C to abort.
Input the modulus length [default = 1024]:
Generating Keys...
.++++++++++++++++++++++++++++++++++++++++++++++++++*
........+......+.....+......................................+
...+.................+..........+...+.
# 使能SSH服务器功能。
[Switch] ssh server enable
# 配置VLAN接口2的IP地址,客户端将通过该地址连接Stelnet服务器。
[Switch] interface vlan-interface 2
[Switch-Vlan-interface2] undo shutdown
[Switch-Vlan-interface2] ip address 192.168.1.40 255.255.255.0
[Switch-Vlan-interface2] quit
# 设置Stelnet客户端登录用户界面的认证方式为scheme。
[Switch] user-interface vty 0 15
[Switch-ui-vty0-15] authentication-mode scheme
[Switch-ui-vty0-15] quit
# 创建本地用户client001,密码为aabbcc,服务类型为SSH,用户角色为network-admin(缺省用户角色为network-operator)。
[Switch] local-user client001 class manage
[Switch-luser-manage-client001] password simple aabbcc
[Switch-luser-manage-client001] service-type ssh
[Switch-luser-manage-client001] authorization-attribute user-role network-admin
[Switch-luser-manage-client001] quit
Stelnet客户端软件有很多,例如PuTTY、OpenSSH等。本文中仅以客户端软件PuTTY0.58为例,说明Stelnet客户端的配置方法。
# 打开PuTTY.exe程序,出现如图2所示的客户端配置界面。在“Host Name(or IP address)”文本框中输入Stelnet服务器的IP地址为192.168.1.40。
图2 Stelnet客户端配置界面
# 在图2界面中,单击<Open>按钮。按提示输入用户名client001及密码aabbcc,即可进入Switch的配置界面。
在Host上的SSH客户端输入正确的用户名和密码后,可以登录Switch,用户角色为network-admin。
#
local-user client001 class manage
password hash $h$6$CqMnWdX6LIW/hz2Z$4+0Pumk+A98VlGVgqN3n/mEi7hJka9fEZpRZIpSNi9b
cBEXhpvIqaYTvIVBf7ZUNGnovFsqW7nYxjoToRDvYBg==
service-type ssh
authorization-attribute user-role network-operator
authorization-attribute user-role network-admin
#
#
interface Vlan-interface2
ip address 192.168.1.40 255.255.255.0
#
ssh server enable
#
user-interface vty 0 15
authentication-mode scheme
#
如图3所示,Host(Stelnet客户端)与Switch(Stelnet服务器)建立本地连接。要求:
· Host采用SSH协议登录到Switch上,以保证数据信息交换的安全。
· SSH用户采用的认证方式为publickey认证,公钥算法为RSA,登录用户名为client001,用户登录设备后可以正常使用所有命令。
· 服务器端通过从公钥文件中导入的方式来配置客户端的公钥。
图3 设备作为Stelnet服务器配置组网图
· 在服务器的配置过程中需要指定客户端的公钥信息,因此需要首先完成客户端密钥对的配置,再进行服务器的配置。
· 服务器在采用publickey方式验证客户端身份时,首先要比较客户端发送的Stelnet用户名、主机公钥是否与本地配置的SSH用户名以及相应的客户端主机公钥一致,在确认用户名和客户端主机公钥正确后,再利用数字签名对客户端进行验证,而该签名是客户端利用主机公钥对应的私钥计算出的。因此,需要在服务器端配置客户端的RSA主机公钥,并在客户端为该SSH用户指定与主机公钥对应的RSA主机私钥。
· SSH用户通过publickey认证方式登录服务器后,所能操作的命令权限由本地用户视图下指定的用户角色决定。因为Stelnet用户登录设备后要能正常使用所有命令,所以将用户的用户角色设置为network-admin,缺省情况下本地用户的用户角色为network-operator。
本举例是在S12500-CMW710-R7129版本上进行配置和验证的。
· SSH用户登录的用户界面的认证方式必须配置为scheme方式。
· 如果SSH服务器采用publickey方式认证客户端,必须在服务器上创建相应的SSH用户,以及同名的本地用户(用于下发授权属性:工作目录、用户角色)。
· 虽然一个客户端只会采用DSA和RSA公钥算法中的一种来认证服务器,但是由于不同客户端支持的公钥算法不同,为了确保客户端能够成功登录服务器,建议在服务器上同时生成DSA和RSA两种密钥对。
客户端软件有很多,例如PuTTY、OpenSSH等。本文中仅以客户端软件PuTTY0.58为例,说明Stelnet客户端的配置方法。
# 在客户端运行PuTTYGen.exe,在参数栏中选择“SSH-2 RSA”,点击<Generate>,产生客户端密钥对。
图4 生成客户端密钥
# 在产生密钥对的过程中需不停地移动鼠标,鼠标移动仅限于下图蓝色框中除绿色标记进程条外的地方,否则进程条的显示会不动,密钥对将停止产生,见图5。
# 密钥对产生后,点击<Save public key>,输入存储公钥的文件名key.pub,点击<保存>按钮。
图6 生成客户端密钥
# 点击<Save private key>存储私钥,弹出警告框,提醒是否保存没做任何保护措施的私钥,点击<Yes>,输入私钥文件名为private.ppk,点击保存。
图7 生成客户端密钥
# 客户端生成密钥对后,需要将保存的公钥文件key.pub通过FTP/TFTP方式上传到服务器,具体过程略。
# 生成RSA密钥对。
[Switch] public-key local create rsa
The range of public key size is (512 ~ 2048).
If the key modulus is greater than 512, it will take a few minutes.
Press CTRL+C to abort.
Input the modulus length [default = 1024]:
Generating Keys...
........................++++++
...................++++++
..++++++++
............++++++++
# 生成DSA密钥对。
[Switch] public-key local create dsa
The range of public key size is (512 ~ 2048).
If the key modulus is greater than 512, it will take a few minutes.
Press CTRL+C to abort.
Input the modulus length [default = 1024]:
Generating Keys...
.++++++++++++++++++++++++++++++++++++++++++++++++++*
........+......+.....+......................................+
...+.................+..........+...+
# 使能SSH服务器功能。
[Switch] ssh server enable
# 配置VLAN接口2的IP地址,客户端将通过该地址连接Stelnet服务器。
[Switch] interface vlan-interface 2
[Switch-Vlan-interface2] undo shutdown
[Switch-Vlan-interface2] ip address 192.168.1.40 255.255.255.0
[Switch-Vlan-interface2] quit
# 设置Stelnet客户端登录用户界面的认证方式为scheme。
[Switch] user-interface vty 0 15
[Switch-ui-vty0-15] authentication-mode scheme
[Switch-ui-vty0-15] quit
# 从文件key.pub中导入远端的公钥,并命名为switchkey。
[Switch] public-key peer switchkey import sshkey key.pub
# 设置SSH用户client001的认证方式为publickey,并指定公钥为switchkey。
[Switch] ssh user client001 service-type stelnet authentication-type publickey assign publickey switchkey
#创建本地用户client001,服务类型为SSH,用户角色为network-admin(缺省用户角色为network-operator)。
[Switch] local-user client001 class manage
[Switch-luser-manage-client001] service-type ssh
[Switch-luser-manage-client001] authorization-attribute user-role network-admin
[Switch-luser-manage-client001] quit
# 打开PuTTY.exe程序,出现如图8所示的客户端配置界面。在“Host Name(or IP address)”文本框中输入Stelnet服务器的IP地址为192.168.1.40。
图8 Stelnet客户端配置界面
# 单击左侧导航栏“Connection->SSH”,出现如图9的界面。选择“Preferred SSH protocol version”为“2”。
图9 Stelnet客户端配置界面
# 单击左侧导航栏“Connection->SSH”下面的“Auth”(认证),出现如图10的界面。单击<Browse…>按钮,弹出文件选择窗口。选择与配置到服务器端的公钥对应的私钥文件private.ppk。
图10 Stelnet客户端配置界面
# 如图10,单击<Open>按钮。按提示输入用户名client001,即可进入Switch的配置界面。
Host端使用PuTTYGen,输入用户名client001后可登录Switch,用户角色为network-admin。
#
local-user client001 class manage
service-type ssh
authorization-attribute user-role network-operator
authorization-attribute user-role network-admin
#
#
interface Vlan-interface2
ip address 192.168.1.40 255.255.255.0
#
ssh server enable
ssh user client001 service-type stelnet authentication-type publickey assign publickey switchkey
#
user-interface vty 0 15
authentication-mode scheme
#
如图11所示,Switch A作为客户端,采用SSH协议登录到Switch B上。要求:Switch B采用本地认证的方式认证用户,SSH服务器采用的认证方式为password认证,登录用户名为client001,密码为aabbcc,用户登录设备后可以正常使用所有命令。为提高安全性,需要以客户端保存的主机公钥来验证服务器,客户端只信任通过验证的服务器并继续访问该服务器。
图11 设备作为Stelnet客户端配置组网图
· 因为采用本地认证的方式认证用户,所以只需在本地Stelnet服务器上创建相应的本地用户,并在本地用户视图下配置密码,而不需要创建SSH用户。
· 对于本地认证,Stelnet用户登录后所能操作的命令权限由本地用户的用户角色决定。因为Stelnet用户登录设备后要能正常使用所有命令,所以将用户的用户角色设置为network-admin,缺省情况下本地用户的用户角色为network-operator。
· 因为客户端必须配置了服务器端的主机公钥,才能与服务器建立连接,所以需要先将服务器Switch B的主机公钥配置在客户端Switch A上,同时指定要连接的服务器Switch B的主机公钥名称,此时客户端Switch A才可与服务器Switch B建立连接。
本举例是在S12500-CMW710-R7129版本上进行配置和验证的。
· SSH用户登录的用户界面的认证方式必须配置为scheme方式。
· 为了保证SSH的版本协商和算法协商过程正常运行,请在服务器端配置生成RSA和DSA密钥对。
# 生成RSA密钥对。
<SwitchB> system-view
[SwitchB] public-key local create rsa
The range of public key size is (512 ~ 2048).
If the key modulus is greater than 512, it will take a few minutes.
Press CTRL+C to abort.
Input the modulus length [default = 1024]:
Generating Keys...
........................++++++
...................++++++
..++++++++
............++++++++
# 生成DSA密钥对。
[SwitchB] public-key local create dsa
The range of public key size is (512 ~ 2048).
If the key modulus is greater than 512, it will take a few minutes.
Press CTRL+C to abort.
Input the modulus length [default = 1024]:
Generating Keys...
.++++++++++++++++++++++++++++++++++++++++++++++++++*
........+......+.....+......................................+
...+.................+..........+...+
# 使能SSH服务器功能。
[SwitchB] ssh server enable
# 配置VLAN接口2的IP地址,客户端将通过该地址连接Stelnet服务器。
[SwitchB] interface vlan-interface 2
[SwitchB-Vlan-interface2] undo shutdown
[SwitchB-Vlan-interface2] ip address 192.168.1.40 255.255.255.0
[SwitchB-Vlan-interface2] quit
# 设置Stelnet客户端登录用户界面的认证方式为scheme。
[SwitchB] user-interface vty 0 15
[SwitchB-ui-vty0-15] authentication-mode scheme
[SwitchB-ui-vty0-15] quit
# 创建本地用户client001,密码为aabbcc,服务类型为SSH,用户角色为network-admin(缺省用户角色为network-operator)。
[SwitchB]local-user client001 class manage
[SwitchB-luser-manage-client001]password simple aabbcc
[SwitchB-luser-manage-client001]service-type ssh
[SwitchB-luser-manage-client001] authorization-attribute user-role network-admin
[SwitchB-luser-manage-client001]quit
# 配置VLAN接口2的IP地址。
<SwitchA> system-view
[SwitchA] interface vlan-interface 2
[SwitchA-Vlan-interface2] undo shutdown
[SwitchA-Vlan-interface2] ip address 192.168.1.56 255.255.255.0
[SwitchA-Vlan-interface2] quit
[SwitchA] quit
# 指定服务器端的主机公钥名称为key1,并进入公钥视图。
[SwitchA] public-key peer key1
Enter public key view. Return to system view with "peer-public-key end" command.
# 在客户端配置服务器端的主机公钥(在服务器端通过display public-key local dsa public命令显示公钥内容,并将该公钥内容拷贝到客户端)。
[SwitchA-pkey-public-key-key1]308201B73082012C06072A8648CE3804013082011F0281810
0D757262C4584C44C211F18BD96E5F0
[SwitchA-pkey-public-key-key1]61C4F0A423F7FE6B6B85B34CEF72CE14A0D3A5222FE08CECE
65BE6C265854889DC1EDBD13EC8B274
[SwitchA-pkey-public-key-key1]DA9F75BA26CCB987723602787E922BA84421F22C3C89CB9B0
6FD60FE01941DDD77FE6B12893DA76E
[SwitchA-pkey-public-key-key1]EBC1D128D97F0678D7722B5341C8506F358214B16A2FAC4B3
68950387811C7DA33021500C773218C
[SwitchA-pkey-public-key-key1]737EC8EE993B4F2DED30F48EDACE915F0281810082269009E
14EC474BAF2932E69D3B1F18517AD95
[SwitchA-pkey-public-key-key1]94184CCDFCEAE96EC4D5EF93133E84B47093C52B20CD35D02
492B3959EC6499625BC4FA5082E22C5
[SwitchA-pkey-public-key-key1]B374E16DD00132CE71B020217091AC717B612391C76C1FB2E
88317C1BD8171D41ECB83E210C03CC9
[SwitchA-pkey-public-key-key1]B32E810561C21621C73D6DAAC028F4B1585DA7F42519718CC
9B09EEF0381840002818000AF995917
[SwitchA-pkey-public-key-key1]E1E570A3F6B1C2411948B3B4FFA256699B3BF871221CC9C5D
F257523777D033BEE77FC378145F2AD
[SwitchA-pkey-public-key-key1]D716D7DB9FCABB4ADBF6FB4FDB0CA25C761B308EF53009F71
01F7C62621216D5A572C379A32AC290
[SwitchA-pkey-public-key-key1]E55B394A217DA38B65B77F0185C8DB8095522D1EF044B465E
8716261214A5A3B493E866991113B2D
[SwitchA-pkey-public-key-key1]485348
# 退出公钥视图,并保存用户输入的公钥。
[SwitchA-pkey-public-key-key1] peer-public-key end
[SwitchA] quit
# 建立到服务器192.168.1.40的SSH连接,并指定服务器端的主机公钥。
<SwitchA> ssh2 192.168.1.40 publickey key1
Username: client001
[email protected]'s password:
# 在Switch A上运行如下命令:
<SwitchA> ssh2 192.168.1.40
输入正确的用户名和密码之后,即可成功登录到Switch B上,用户角色为network-admin。
· SwitchA
#
vlan 1
#
interface Vlan-interface2
ip address 192.168.1.56 255.255.255.0
#
· SwitchB
#
vlan 1
#
local-user client001
password cipher $c$3$o71Exx1XIKs9gJoxqSodHGl1uT9rlZEd4w==
authorization-attribute user-role network-operator
authorization-attribute user-role network-admin
service-type ssh
#
interface Vlan-interface2
ip address 192.168.1.40 255.255.255.0
#
ssh server enable
ssh user client001 service-type stelnet authentication-type password
#
user-interface vty 0 15
authentication-mode scheme
#
如图12所示,Switch A作为客户端,采用SSH协议登录到Switch B(Stelnet服务器)上。要求:
· SSH用户采用的认证方式为publickey认证,公钥算法为DSA,登录用户名为client001,用户登录设备后可以正常使用所有命令。
· 服务器端通过从公钥文件中导入的方式来配置客户端的公钥。
图12 设备作为Stelnet客户端配置组网图
· 在服务器的配置过程中需要指定客户端的公钥信息,因此需要首先完成客户端密钥对的配置,再进行服务器的配置。
· 服务器在采用publickey方式验证客户端身份时,首先要比较客户端发送的SSH用户名、主机公钥是否与本地配置的SSH用户名以及相应的客户端主机公钥一致,在确认用户名和客户端主机公钥正确后,再对客户端发送的数字签名进行验证,而该签名是客户端利用主机公钥对应的私钥计算出的。因此,需要在服务器端配置客户端的DSA主机公钥,并在客户端为该SSH用户指定与主机公钥对应的DSA主机私钥(在向服务器发起连接时通过identity-key关键字指定公钥算法来实现)。
· SSH用户通过publickey认证方式登录服务器后,所能操作的命令权限由本地用户视图下指定的用户角色决定。因为Stelnet用户登录设备后要能正常使用所有命令,所以将用户的用户角色设置为network-admin,缺省情况下本地用户的用户角色为network-operator。
本举例是在S12500-CMW710-R7129版本上进行配置和验证的。
· SSH用户登录的用户界面的认证方式必须配置为scheme方式。
· 如果SSH服务器采用publickey方式认证客户端,必须在服务器上创建相应的SSH用户,以及同名的本地用户(用于下发授权属性:工作目录、用户角色)。
· 虽然一个客户端只会采用DSA和RSA公钥算法中的一种来认证服务器,但是由于不同客户端支持的公钥算法不同,为了确保客户端能够成功登录服务器,建议在服务器上同时生成DSA和RSA两种密钥对。
# 配置VLAN接口2的IP地址。
<SwitchA> system-view
[SwitchA] interface vlan-interface 2
[SwitchA-Vlan-interface2] undo shutdown
[SwitchA-Vlan-interface2] ip address 192.168.1.56 255.255.255.0
[SwitchA-Vlan-interface2] quit
# 生成DSA密钥对。
[SwitchA] public-key local create dsa
The range of public key size is (512 ~ 2048).
If the key modulus is greater than 512, it will take a few minutes.
Press CTRL+C to abort.
Input the modulus length [default = 1024]:
Generating Keys...
.++++++++++++++++++++++++++++++++++++++++++++++++++*
........+......+.....+......................................+
...+.................+..........+...+
# 将生成的DSA主机公钥导出到指定文件key.pub中。
[SwitchA] public-key local export dsa ssh2 key.pub
[SwitchA] quit
# 客户端生成密钥对后,需要将保存的公钥文件key.pub通过FTP/TFTP方式上传到服务器,具体过程略。
# 生成RSA密钥对。
<SwitchB> system-view
[SwitchB] public-key local create rsa
The range of public key size is (512 ~ 2048)
If the key modulus is greater than 512, it will take a few minutes.
Press CTRL+C to abort.
Input the modulus length [default = 1024]:
Generating Keys...
........................++++++
...................++++++
..++++++++
............++++++++
# 生成DSA密钥对。
[SwitchB] public-key local create dsa
The range of public key size is (512 ~ 2048).
If the key modulus is greater than 512, it will take a few minutes.
Press CTRL+C to abort.
Input the modulus length [default = 1024]:
Generating Keys...
.++++++++++++++++++++++++++++++++++++++++++++++++++*
........+......+.....+......................................+
...+.................+..........+...+
# 使能SSH服务器功能。
[SwitchB] ssh server enable
# 配置VLAN接口2的IP地址,客户端将通过该地址连接SSH服务器。
[SwitchB] interface vlan-interface 2
[SwitchB-Vlan-interface2] undo shutdown
[SwitchB-Vlan-interface2] ip address 192.168.1.40 255.255.255.0
[SwitchB-Vlan-interface2] quit
# 设置Stelnet客户端登录用户界面的认证方式为scheme。
[SwitchB] user-interface vty 0 15
[SwitchB-ui-vty0-15] authentication-mode scheme
[SwitchB-ui-vty0-15] quit
# 从文件key.pub中导入远端的公钥,并命名为switchkey。
[SwitchB] public-key peer switchkey import sshkey key.pub
# 设置SSH用户client001的认证方式为publickey,并指定公钥为switchkey。
[SwitchB] ssh user client001 service-type stelnet authentication-type publickey assign publickey switchkey
# 创建设备管理类本地用户client001,并设置服务类型为SSH,用户角色为network-admin,工作目录为cfa0:/。
[SwitchB] local-user client001 class manage
[SwitchB-luser-manage-client001] service-type ssh
[SwitchB-luser-manage-client001] authorization-attribute user-role network-admin work-directory cfa0:/
[SwitchB-luser-manage-client001] quit
# 建立到服务器192.168.1.40的SSH连接。
<SwitchA> ssh2 192.168.1.40 identity-key dsa
Username: client002
The server is not authenticated. Continue? [Y/N]:y
Do you want to save the server public key? [Y/N]:n
# 在Switch A上运行如下命令:
<SwitchA> ssh2 192.168.1.40 identity-key dsa
输入正确的用户名,选择继续访问服务器之后,即可成功登录到Switch B上,用户角色为network-admin。
· SwitchA
#
vlan 2
#
interface Vlan-interface2
ip address 192.168.1.56 255.255.255.0
#
· SwitchB
#
local-user client001 class manage
service-type ssh
authorization-attribute user-role network-operator
authorization-attribute user-role network-admin
#
#
interface Vlan-interface2
ip address 192.168.1.40 255.255.255.0
#
ssh server enable
ssh user client001 service-type stelnet authentication-type publickey assign publickey switchkey
#
user-interface vty 0 15
authentication-mode scheme
#
如图13所示,Host和Switch之间建立SSH连接,Host作为SFTP客户端登录到Switch,进行文件管理和文件传送等操作。要求:Switch采用本地认证的方式认证用户,SSH服务器采用的认证方式为password认证,SSH用户的用户名为client002,密码为aabbcc,用户登录设备后可以正常使用所有命令。
图13 设备作为SFTP服务器配置组网图
· 因为采用本地认证认证用户,所以只需在本地SFTP服务器Switch上创建相应的本地用户,并在本地用户视图下配置密码,而不需要创建SSH用户。
· 对于本地认证,SFTP用户登录后所能操作的命令权限由本地用户的用户角色决定。因为SFTP用户登录设备后要能正常使用所有命令,所以将用户的用户角色设置为network-admin,缺省情况下本地用户的用户角色为network-operator。
本举例是在S12500-CMW710-R7129版本上进行配置和验证的。
· SSH用户登录的用户界面的认证方式必须配置为scheme方式。
· 为了保证SSH的版本协商和算法协商过程正常运行,请在服务器端配置生成RSA和DSA密钥对。
# 生成RSA密钥对。
<Switch> system-view
[Switch] public-key local create rsa
The range of public key size is (512 ~ 2048).
If the key modulus is greater than 512, it will take a few minutes.
Press CTRL+C to abort.
Input the modulus length [default = 1024]:
Generating Keys...
........................++++++
...................++++++
..++++++++
............++++++++
# 生成DSA密钥对。
[Switch] public-key local create dsa
The range of public key size is (512 ~ 2048).
If the key modulus is greater than 512, it will take a few minutes.
Press CTRL+C to abort.
Input the modulus length [default = 1024]:
Generating Keys...
.++++++++++++++++++++++++++++++++++++++++++++++++++*
........+......+.....+......................................+
...+.................+..........+...+
# 使能SSH服务器功能。
[Switch] ssh server enable
# 启动SFTP服务器。
[Switch] sftp server enable
# 配置VLAN接口2的IP地址,客户端将通过该地址连接SSH服务器。
[Switch] interface vlan-interface 2
[Switch-Vlan-interface2] undo shutdown
[Switch-Vlan-interface2] ip address 192.168.1.45 255.255.255.0
[Switch-Vlan-interface2] quit
# 设置SFTP客户端登录用户界面的认证方式为scheme。
[Switch] user-interface vty 0 15
[Switch-ui-vty0-15] authentication-mode scheme
[Switch-ui-vty0-15] quit
# 创建本地用户client002,密码为aabbcc,服务类型为SSH,用户角色为network-admin(缺省用户角色为network-operator),工作目录为cfa0:/。
[Switch]local-user client002 class manage
[Switch-luser-manage-client002]password simple aabbcc
[Switch-luser-manage-client002]service-type ssh
[Switch-luser-manage-client002] authorization-attribute user-role network-admin work-directory cfa0:/
[Switch-luser-manage-client002]quit
# 配置SSH用户认证方式为password,服务类型为SFTP。
[Switch] ssh user client002 service-type sftp authentication-type password
· SFTP客户端软件有很多,本文中仅以客户端软件PuTTY0.58中的PSFTP为例,说明SFTP客户端的配置方法。
· PSFTP只支持password认证,不支持publickey认证。
# 打开psftp.exe程序,出现如图14所示的客户端配置界面。输入如下命令:
open 192.168.1.45
# 根据提示输入用户名client002,密码aabbcc,即可登录SFTP服务器。
图14 SFTP客户端登录界面
# 打开PSFTP.exe程序,运行如下命令:
open 192.168.1.45
如图14中客户端配置所示,输入用户名和密码后,可以正确登录SFTP服务器并能够执行PSFTP操作,用户角色为network-admin。
#
local-user client002
password cipher $c$3$o71Exx1XIKs9gJoxqSodHGl1uT9rlZEd4w==
authorization-attribute user-role network-operator
authorization-attribute user-role network-admin
service-type ssh
#
interface Vlan-interface1
ip address 192.168.1.45 255.255.255.0
#
ssh server enable
sftp server enable
ssh user client002 service-type sftp authentication-type password
#
user-interface vty 0 15
authentication-mode scheme
#
如图15所示,Switch A和Switch B之间建立SSH连接,Switch A作为SFTP客户端登录到Switch B,进行文件管理和文件传送等操作。要求:
· SSH用户采用的认证方式为publickey认证,公钥算法为RSA,登录用户名为client001。
· 服务器端通过从公钥文件中导入的方式来配置客户端的公钥。
图15 设备作为SFTP客户端配置组网图
· 在服务器的配置过程中需要指定客户端的公钥信息,因此需要首先完成客户端密钥对的配置,再进行服务器的配置。
· 服务器在采用publickey方式验证客户端身份时,首先要比较客户端发送的SSH用户名、主机公钥是否与本地配置的SSH用户名以及相应的客户端主机公钥一致,在确认用户名和客户端主机公钥正确后,再对客户端发送的数字签名进行验证,而该签名是客户端利用主机公钥对应的私钥计算出的。因此,需要在服务器端配置客户端的RSA主机公钥,并在客户端为该SSH用户指定与主机公钥对应的RSA主机私钥(在向服务器发起连接时通过identity-key关键字指定公钥算法来实现)。
· SSH用户通过publickey认证方式登录服务器后,所能操作的命令权限由本地用户视图下指定的用户角色决定。因为SFTP用户登录设备后要能正常使用所有命令,所以将用户的用户角色设置为network-admin,缺省情况下本地用户的用户角色为network-operator。
本举例是在S12500-CMW710-R7129版本上进行配置和验证的。
· SSH用户登录的用户界面的认证方式必须配置为scheme方式。
· 如果SSH服务器采用publickey方式认证客户端,必须在SFTP服务器上创建相应的SSH用户,以及同名的本地用户(用于下发授权属性:工作目录、用户角色)。
· 虽然一个客户端只会采用DSA和RSA公钥算法中的一种来认证服务器,但是由于不同客户端支持的公钥算法不同,为了确保客户端能够成功登录服务器,建议在服务器上同时生成DSA和RSA两种密钥对。
# 配置VLAN接口2的IP地址。
<SwitchA> system-view
[SwitchA] interface vlan-interface 2
[SwitchA-Vlan-interface2] undo shutdown
[SwitchA-Vlan-interface2] ip address 192.168.0.2 255.255.255.0
[SwitchA-Vlan-interface2] quit
# 生成RSA密钥对。
[SwitchA] public-key local create rsa
The range of public key size is (512 ~ 2048).
If the key modulus is greater than 512, it will take a few minutes.
Press CTRL+C to abort.
Input the modulus length [default = 1024]:
Generating Keys...
........................++++++
...................++++++
..++++++++
............++++++++
# 将生成的RSA主机公钥导出到指定文件pubkey中。
[SwitchA] public-key local export rsa ssh2 pubkey
[SwitchA] quit
客户端生成密钥对后,需要将保存的公钥文件pubkey通过FTP/TFTP方式上传到服务器,具体过程略。
# 生成RSA密钥对。
<SwitchB> system-view
[SwitchB] public-key local create rsa
The range of public key size is (512 ~ 2048).
If the key modulus is greater than 512, it will take a few minutes.
Press CTRL+C to abort.
Input the modulus length [default = 1024]:
Generating Keys...
........................++++++
...................++++++
..++++++++
............++++++++
# 生成DSA密钥对。
[SwitchB] public-key local create dsa
The range of public key size is (512 ~ 2048).
If the key modulus is greater than 512, it will take a few minutes.
Press CTRL+C to abort.
Input the modulus length [default = 1024]:
Generating Keys...
.++++++++++++++++++++++++++++++++++++++++++++++++++*
........+......+.....+......................................+
...+.................+..........+...+
# 使能SSH服务器功能。
[SwitchB] ssh server enable
# 启动SFTP服务器。
[SwitchB] sftp server enable
# 配置VLAN接口2的IP地址,客户端将通过该地址连接SSH服务器。
[SwitchB] interface vlan-interface 2
[SwitchB-Vlan-interface2] undo shutdown
[SwitchB-Vlan-interface2] ip address 192.168.0.1 255.255.255.0
[SwitchB-Vlan-interface2] quit
# 设置SFTP客户端登录用户界面的认证方式为scheme。
[SwitchB] user-interface vty 0 15
[SwitchB-ui-vty0-15] authentication-mode scheme
[SwitchB-ui-vty0-15] quit
# 从文件pubkey中导入远端的公钥,并命名为switchkey。
[SwitchB] public-key peer switchkey import sshkey pubkey
# 设置SSH用户client001的服务类型为SFTP,认证方式为publickey,并指定公钥为switchkey。
[SwitchB] ssh user client001 service-type sftp authentication-type publickey assign publickey switchkey
# 创建设备管理类本地用户client001,并设置服务类型为SSH,用户角色为network-admin,工作目录为cfa0:/。
[SwitchB] local-user client001 class manage
[SwitchB-luser-manage-client001] service-type ssh
[SwitchB-luser-manage-client001] authorization-attribute user-role network-admin work-directory cfa0:/
[SwitchB-luser-manage-client001] quit
# 与远程SFTP服务器建立连接,进入SFTP客户端视图。
<SwitchA> sftp 192.168.0.1 identity-key rsa
Username: client001
Connecting to 192.168.0.1 port 22.
The server is not authenticated. Continue? [Y/N]:y
Do you want to save the server public key? [Y/N]:n
sftp>
# 显示服务器的当前目录,删除文件z,并检查此文件是否删除成功。
sftp> dir -l
-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 pubkey
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> delete z
Removing /z
sftp> dir -l
-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 pubkey
drwxrwxrwx 1 noone nogroup 0 Sep 01 06:22 new
-rwxrwxrwx 1 noone nogroup 225 Sep 01 06:55 pub
# 新增目录new1,并检查新目录是否创建成功。
sftp> mkdir new1
sftp> dir -l
-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 pubkey
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> rename new1 new2
sftp> dir -l
-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 pubkey
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> Get pubkey2 to public
/pubkey2 100% 225 1.4KB/s 00:00
# 将本地文件pu上传到服务器上,更名为puk,并查看上传是否成功。
sftp> put pu puk
sftp> dir -l
-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 pubkey
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>
# 退出SFTP客户端视图。
sftp> quit
<SwitchA>
# Switch A上运行如下命令:
<SwitchA> sftp 192.168.0.1 identity-key rsa
输入正确的用户名后,Switch A作为SFTP客户端可登录到Switch B,进行文件管理和文件传送等操作,用户角色为network-admin。
· SwitchA
#
vlan 1
#
interface Vlan-interface2
ip address 192.168.0.2 255.255.255.0
#
· SwitchB
#
local-user client001 class manage
service-type ssh
authorization-attribute user-role network-operator
authorization-attribute user-role network-admin
#
interface Vlan-interface2
ip address 192.168.0.1 255.255.255.0
#
ssh server enable
sftp server enable
ssh user client001 service-type sftp authentication-type publickey assign publickey Switch001 work-directory cfa0:/
#
user-interface vty 0 15
authentication-mode scheme
#
· 《H3C S12500系列路由交换机 安全配置指导》中的“SSH”
· 《H3C S12500系列路由交换机 安全命令参考》中的“SSH”
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!