00-H3C SR8800 SSH典型配置举例
本章节下载: 00-H3C SR8800 SSH典型配置举例 (708.96 KB)
H3C SR8800 SSH配置举例
Copyright © 2014 杭州华三通信技术有限公司 版权所有,保留一切权利。 非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部, 并不得以任何形式传播。本文档中的信息可能变动,恕不另行通知。 |
目 录
3 设备作为Stelnet服务器配置举例(password认证)
4 设备作为Stelnet服务器配置举例(publickey认证)
5 设备作为Stelnet客户端配置举例(password认证)
6 设备作为Stelnet客户端配置举例(publickey认证)
8 设备作为SFTP客户端配置举例(publickey认证)
本章介绍了使用SSH(Secure Shell,安全外壳)功能实现安全的远程访问或文件管理的典型配置举例。
本文档中的配置均是在实验室环境下进行的配置和验证,配置前设备的所有参数均采用出厂时的缺省配置。如果您已经对设备进行了配置,为了保证配置效果,请确认现有配置和以下举例中的配置不冲突。
本文假设您已了解SSH特性。
如图1所示,网络管理员需要通过Internet远程登录到小区的网关设备(Router)上对其进行相关配置。为了提高对Router进行管理的安全性,可将Router配置为Stelnet服务器,并在Host上运行Stelnet客户端软件,在二者之间建立SSH连接。要求:
· Router通过SSH的password认证方式对客户端进行认证,认证过程在Router本地完成;
· 网络管理员Host的登录用户名为client001,密码为aabbcc,登录设备后可以正常使用所有命令。
图1 设备作为Stelnet服务器配置组网图
· 为了采用本地认证的方式认证用户,需要在本地服务器Router上创建相应的本地用户,并在本地用户视图下配置密码,不需要创建SSH用户。
· 对于本地password认证,SSH用户登录后所能操作的命令权限由本地用户的级别决定。为了使SSH用户登录设备后能正常使用所有命令,将用户级别设置为3(管理级),缺省情况下本地用户的级别为0(访问级)。
本举例是在SR8800-CMW520-R3725版本上进行配置和验证的。
· SSH用户登录的用户界面的认证方式必须配置为scheme方式。
· 为了保证SSH的版本协商和算法协商过程正常运行,请在服务器端配置生成RSA和DSA密钥对。
# 生成RSA及DSA密钥对。
<Router> system-view
[Router] public-key local create rsa
The range of public key size is (512 ~ 2048).
NOTES: If the key modulus is greater than 512,
It will take a few minutes.
Press CTRL+C to abort.
Input the bits of the modulus[default = 1024]:
Generating Keys...
++++++++
++++++++++++++
+++++
++++++++
[Router] public-key local create dsa
The range of public key size is (512 ~ 2048).
NOTES: If the key modulus is greater than 512,
It will take a few minutes.
Press CTRL+C to abort.
Input the bits of the modulus[default = 1024]:
Generating Keys...
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++
# 使能SSH服务器功能。
[Router] ssh server enable
# 配置接口GigabitEthernet3/1/1的IP地址,客户端将通过该地址连接Stelnet服务器。
[Router] interface GigabitEthernet 3/1/1
[Router-GigabitEthernet3/1/1] ip address 192.168.1.40 255.255.255.0
[Router-GigabitEthernet3/1/1] quit
# 设置SSH客户端登录用户界面的认证方式为scheme认证。
[Router] user-interface vty 0 15
[Router-ui-vty0-15] authentication-mode scheme
#设置用户界面只支持SSH。
[Router-ui-vty0-15] protocol inbound ssh
[Router-ui-vty0-15] quit
# 创建本地用户client001,并设置用户的密码、服务类型和权限级别。
[Router] local-user client001
[Router-luser-client001] password simple aabbcc
[Router-luser-client001] service-type ssh
[Router-luser-client001] authorization-attribute level 3
[Router-luser-client001] quit
SSH客户端软件有很多,例如PuTTY、OpenSSH等。本文中仅以客户端软件PuTTY0.58为例,说明SSH客户端的配置方法。
# 安装PuTTY0.58软件。
# 打开PuTTY.exe程序,,点击“Session”功能区,出现如图2所示的客户端配置界面。
在“Host Name(or IP address)”文本框中输入SSH服务器的IP地址为192.168.1.40。
· 在“Port”文本框中输入SSH协议端口号22。
· 在“Protocol”区域选择SSH协议。
图2 SSH客户端配置界面
# 在中,单击<Open>按钮。按提示输入用户名client001及密码aabbcc,即可进入Router的配置界面。
在Host上的SSH客户端输入正确的用户名和密码后,可以登录Router,而且用户级别为3。
#
local-user client001
password cipher $c$3$o71Exx1XIKs9gJoxqSodHGl1uT9rlZEd4w==
authorization-attribute level 3
service-type ssh
#
interface GigabitEthernet 3/1/1
port link-mode route
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
protocol inbound ssh
#
如图3所示,网络管理员需要通过Internet远程登录到小区的网关设备(Router)上对其进行相关配置。为了提高对Router进行管理的安全性和认证强度,将Router配置为Stelnet服务器,要求:
· Router通过SSH的publickey认证方式对客户端进行认证,使用的公钥算法为RSA。
· 网络管理员Host的登录用户名为client002,登录设备后可以正常使用所有命令。
图3 设备作为Stelnet服务器配置组网图
· 服务器在采用publickey方式验证客户端身份时,首先要比较客户端发送的SSH用户名、主机公钥是否与本地配置的SSH用户名以及相应的客户端主机公钥一致,在确认用户名和客户端主机公钥正确后,再利用数字签名对客户端进行验证,而该签名是客户端利用主机公钥对应的私钥计算出的。因此,需要在服务器端配置客户端的RSA主机公钥,并在客户端为该SSH用户指定与主机公钥对应的RSA主机私钥。
· 采用从公钥文件导入的方式配置客户端公钥。服务器端可以通过手工配置和从公钥文件中导入两种方式来配置客户端的公钥。由于手工配置客户端的公钥时,输入的公钥必须满足一定的格式要求,否则会致客户端公钥保存失败。
· publickey认证方式下,SSH用户登录后所能操作的命令权限由登录用户界面下user privilege level 命令配置的级别决定,为了使SSH用户登录设备后能正常使用所有命令,将用户级别设置为3(管理级)。缺省为0(访问级)。
本举例是在SR8800-CMW520-R3725版本上进行配置和验证的。
· SSH用户登录的用户界面的认证方式必须配置为scheme方式。
· 如果SSH服务器采用publickey方式认证客户端,必须在服务器上创建相应的SSH用户。
· 虽然一个客户端只会采用DSA和RSA公钥算法中的一种来认证服务器,但是由于不同客户端支持的公钥算法不同,为了确保客户端能够成功登录服务器,请在服务器上同时生成DSA和RSA两种密钥对。
SSH客户端软件有很多,例如PuTTY、OpenSSH等。本文中仅以客户端软件PuTTY0.58为例,说明SSH客户端的配置方法。
# 在客户端运行PuTTYGen.exe,在参数栏中选择“SSH-2 RSA”,点击<Generate>,产生客户端密钥对。
图4 生成客户端密钥(1)
# 在产生密钥对的过程中需不停的移动鼠标,鼠标移动仅限于图5蓝色框中除绿色标记进程条外的地方,否则进程条的会停止显示,密钥对将停止产生,见图5。
# 密钥对产生后,点击<Save public key>,输入存储公钥的文件名key.pub,点击<保存>按钮。
图6 生成客户端密钥(3)
# 点击<Save private key>存储私钥,弹出警告框,提醒是否保存没做任何保护措施的私钥,点击<Yes>,然后选择保存的路径(例如C:\),并输入私钥文件名为private.ppk,点击保存。
图7 生成客户端密钥(4)
# 配置接口GigabitEthernet3/1/1的IP地址。
[Router] interface GigabitEthernet 3/1/1
[Router-GigabitEthernet3/1/1] ip address 192.168.1.40 255.255.255.0
[Router-GigabitEthernet3/1/1] quit
# 在Router上创建一个ftp类型的本地用户。
[Router] local-user ftp
New local user added.
[Router-luser-ftp] password simple ftp
[Router-luser-ftp] authorization-attribute level 3
[Router-luser-ftp] authorization-attribute work-directory flash:/
[Router-luser-ftp] service-type ftp
[Router-luser-ftp] quit
# 开启Router B的FTP服务器功能。
[Router] ftp server enable
[Router] quit
# Host通过FTP登录并上传公钥文件key.pub到Router。
c:\> ftp 192.168.1.40
Connected to 192.168.1.40.
220 FTP service ready.
User(192.168.1.40:(none)):ftp
331 Password required for ftp.
Password:
230 User logged in.
ftp> put key.pub
200 Port command okay.
150 Opening ASCII mode data connection for /key.pub.
226 Transfer complete.
ftp> bye
221 Server closing.
c:\
# 生成RSA及DSA密钥对。
<Router> system-view
[Router] public-key local create rsa
The range of public key size is (512 ~ 2048).
NOTES: If the key modulus is greater than 512,
It will take a few minutes.
Press CTRL+C to abort.
Input the bits of the modulus[default = 1024]:
Generating Keys...
++++++++
++++++++++++++
+++++
++++++++
[Router] public-key local create dsa
The range of public key size is (512 ~ 2048).
NOTES: If the key modulus is greater than 512,
It will take a few minutes.
Press CTRL+C to abort.
Input the bits of the modulus[default = 1024]:
Generating Keys...
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++
# 使能SSH服务器功能。
[Router] ssh server enable
# 设置登录用户界面的认证方式为scheme。
[Router] user-interface vty 0 15
[Router-ui-vty0-15] authentication-mode scheme
# 设置用户界面只支持SSH。
[Router-ui-vty0-15] protocol inbound ssh
# 设置用户的权限级别为3(缺省级别为0)。
[Router-ui-vty0-15] user privilege level 3
[Router-ui-vty0-15] quit
# 从文件key.pub中导入远端的公钥,并命名为Router001。
[Router] public-key peer Router001 import sshkey key.pub
# 设置SSH用户client002的认证方式为publickey,并指定公钥为Router001。
[Router] ssh user client002 service-type stelnet authentication-type publickey assign publickey Router001
# 客户端打开PuTTY.exe程序,点击“Session”功能区,出现如图8所示的客户端配置界面。
· 在“Host Name(or IP address)”文本框中输入SSH服务器的IP地址为192.168.1.40。
· 在“Port”文本框中输入SSH协议端口号22。
· 在“Protocol”区域选择SSH协议。
图8 SSH客户端配置界面(1)
# 单击左侧导航栏“SSH”下面的“Auth”(认证),出现如图9的界面。单击<Browse…>按钮,弹出文件选择窗口。选择与配置到服务器端的公钥对应的私钥文件private.ppk。
图9 SSH客户端配置界面(2)
# 如图9,单击<Open>按钮。按提示输入用户名client002,即可进入Router的配置界面。
#
public-key peer Router001
public-key-code begin
30819D300D06092A864886F70D010101050003818B0030818702818100A2DBC1FD76A837BEF5D322598442D6753B2E8F7ADD6D6209C80843B206B309078AFE2416CB4FAD496A6627243EAD766D57AEA70B901B4B4566D9A651B133BAE34E9B9F04E542D64D0E9814D7E3CBCDBCAF28FF21EE4EADAE6DF52001944A40414DFF280FF043B14838288BE7F9438DC71ABBC2C28BF78F34ADF3D1C912579A19020125
public-key-code end
peer-public-key end
#
local-user ftp
password cipher $c$3$sg9WgqO1w8vnAv2FKGTOYgFJm3nn2w==
authorization-attribute work-directory flash:/
authorization-attribute level 3
service-type ftp
#
interface GigabitEthernet 3/1/1
port link-mode route
ip address 192.168.1.40 255.255.255.0
#
ssh server enable
ssh user client002 service-type stelnet authentication-type publickey assign publickey Router001
#
user-interface vty 0 15
authentication-mode scheme
user privilege level 3
protocol inbound ssh
#
如图10所示,Router A作为客户端,采用SSH协议登录到Router B上。要求:
· Router B采用本地password认证的方式认证用户。
· 登录用户名为client001,密码为aabbcc,用户登录设备后可以正常使用所有命令。
· 为保证服务器的合法性,配置客户端Router A不支持首次认证。
图10 设备作为Stelnet客户端配置组网图
· 为了采用本地认证的方式认证用户,需要在本地服务器Router B上创建相应的本地用户,并在本地用户视图下配置密码,不需要创建SSH用户。
· 对于本地password认证,SSH用户登录后所能操作的命令权限由本地用户的级别决定。为了使SSH用户登录设备后能正常使用所有命令,将用户级别设置为3(管理级),缺省情况下本地用户的级别为0(访问级)。
· 为了使客户端Router A不支持首次认证,需要将服务器Router B的主机公钥配置在客户端Router A上,同时指定要连接的服务器Router B的主机公钥名称,此时客户端Router A才可与服务器Router B建立连接。
本举例是在SR8800-CMW520-R3725版本上进行配置和验证的。
· SSH用户登录的用户界面的认证方式必须配置为scheme方式。
· 为了保证SSH的版本协商和算法协商过程正常运行,请在服务器端配置生成RSA和DSA密钥对。
# 配置服务器,详细内容请参见3 设备作为Stelnet服务器配置举例(password认证)
# 显示服务器端DSA公钥内容。
[RouterB] display public-key local dsa public
=====================================================
Time of Key pair created: 15:23:11 2014/03/12
Key name: HOST_KEY
Key type: DSA Encryption Key
=====================================================
Key code:
308201B73082012C06072A8648CE3804013082011F02818100D757262C4584C44C211F18BD
96E5F061C4F0A423F7FE6B6B85B34CEF72CE14A0D3A5222FE08CECE65BE6C265854889DC1E
DBD13EC8B274DA9F75BA26CCB987723602787E922BA84421F22C3C89CB9B06FD60FE01941D
DD77FE6B12893DA76EEBC1D128D97F0678D7722B5341C8506F358214B16A2FAC4B36895038
7811C7DA33021500C773218C737EC8EE993B4F2DED30F48EDACE915F0281810082269009E1
4EC474BAF2932E69D3B1F18517AD9594184CCDFCEAE96EC4D5EF93133E84B47093C52B20CD
35D02492B3959EC6499625BC4FA5082E22C5B374E16DD00132CE71B020217091AC717B6123
91C76C1FB2E88317C1BD8171D41ECB83E210C03CC9B32E810561C21621C73D6DAAC028F4B1
585DA7F42519718CC9B09EEF038184000281804F123E6FB60EAAD74E169155138806388DFE
92F205416AF7071A1BCD07DBEE2F84FEDC92FFFBF24051DB613B125B001C2C52D3EA3082FE
CA02135BE9CBE9F383389FC92B472B08621ED85654FB5A11187F5E384A2E6BE82EFDCF089C
CA8632229E4EF50F22206EF5BED7EBD2784C6FB3A036DB68CB84FCAFACB75A3A3845FAB7
# 配置接口GigabitEthernet3/1/1的IP地址。
<RouterA> system-view
[RouterA] interface GigabitEthernet 3/1/1
[RouterA-GigabitEthernet3/1/1] ip address 192.168.1.56 255.255.255.0
[RouterA-GigabitEthernet3/1/1] quit
[RouterA] quit
# 配置客户端对服务器不进行首次认证。
[RouterA] undo ssh client first-time
# 在客户端配置服务器端的主机公钥(由于客户端缺省采用DSA主机公钥认证服务器,因此这里输入的是在服务器端通过display public-key local dsa public命令显示的公钥内容)。
[RouterA] public-key peer key1
Public key view: return to System View with "peer-public-key end".
[RouterA-pkey-public-key] public-key-code begin
Public key code view: return to last view with "public-key-code end".
[RouterA-pkey-key-code] 308201B73082012C06072A8648CE3804013082011F02818100D757262C458
4C44C211F18BD96E5F061C4F0A423F7FE6B6B85B34CEF72CE14A0D3A5222FE08CECE65B
[RouterA-pkey-key-code] E6C265854889DC1EDBD13EC8B274DA9F75BA26CCB987723602787E922BA84
421F22C3C89CB9B06FD60FE01941DDD77FE6B12893DA76EEBC1D128D97F0678D7722B53
[RouterA-pkey-key-code] 41C8506F358214B16A2FAC4B368950387811C7DA33021500C773218C737EC
8EE993B4F2DED30F48EDACE915F0281810082269009E14EC474BAF2932E69D3B1F18517
[RouterA-pkey-key-code] AD9594184CCDFCEAE96EC4D5EF93133E84B47093C52B20CD35D02492B3959
EC6499625BC4FA5082E22C5B374E16DD00132CE71B020217091AC717B612391C76C1FB2
[RouterA-pkey-key-code] E88317C1BD8171D41ECB83E210C03CC9B32E810561C21621C73D6DAAC028F
4B1585DA7F42519718CC9B09EEF038184000281804F123E6FB60EAAD74E169155138806
[RouterA-pkey-key-code] 388DFE92F205416AF7071A1BCD07DBEE2F84FEDC92FFFBF24051DB613B125
B001C2C52D3EA3082FECA02135BE9CBE9F383389FC92B472B08621ED85654FB5A11187F
[RouterA-pkey-key-code] 5E384A2E6BE82EFDCF089CCA8632229E4EF50F22206EF5BED7EBD2784C6FB
3A036DB68CB84FCAFACB75A3A3845FAB7
[RouterA-pkey-key-code] public-key-code end
[RouterA-pkey-public-key] peer-public-key end
# 指定服务器192.168.1.40对应的主机公钥名称为key1。
[RouterA] ssh client authentication server 192.168.1.40 assign publickey key1
[RouterA] quit
# 在Router A上运行如下命令:
<RouterA> ssh2 192.168.1.40
Username: client001
Trying 192.168.1.40
Press CTRL+K to abort
Connected to 192.168.1.40...
Enter password:
输入正确的用户名和密码之后,即可成功登录到Router B上。
· Router A
#
interface GigabitEthernet3/1/1
port link-mode route
ip address 192.168.1.56 255.255.255.0
#
public-key peer key1
public-key-code begin
308201B73082012C06072A8648CE3804013082011F02818100D757262C4584C44C211F18BD
96E5F061C4F0A423F7FE6B6B85B34CEF72CE14A0D3A5222FE08CECE65BE6C265854889DC1E
DBD13EC8B274DA9F75BA26CCB987723602787E922BA84421F22C3C89CB9B06FD60FE01941D
DD77FE6B12893DA76EEBC1D128D97F0678D7722B5341C8506F358214B16A2FAC4B36895038
7811C7DA33021500C773218C737EC8EE993B4F2DED30F48EDACE915F0281810082269009E1
4EC474BAF2932E69D3B1F18517AD9594184CCDFCEAE96EC4D5EF93133E84B47093C52B20CD
35D02492B3959EC6499625BC4FA5082E22C5B374E16DD00132CE71B020217091AC717B6123
91C76C1FB2E88317C1BD8171D41ECB83E210C03CC9B32E810561C21621C73D6DAAC028F4B1
585DA7F42519718CC9B09EEF038184000281804F123E6FB60EAAD74E169155138806388DFE
92F205416AF7071A1BCD07DBEE2F84FEDC92FFFBF24051DB613B125B001C2C52D3EA3082FE
CA02135BE9CBE9F383389FC92B472B08621ED85654FB5A11187F5E384A2E6BE82EFDCF089C
CA8632229E4EF50F22206EF5BED7EBD2784C6FB3A036DB68CB84FCAFACB75A3A3845FAB7
public-key-code end
peer-public-key end
#
undo ssh client first-time
#
ssh client authentication server 192.168.1.40 assign publickey key1
#
· Router B
#
local-user client001
password cipher $c$3$o71Exx1XIKs9gJoxqSodHGl1uT9rlZEd4w==
authorization-attribute level 3
service-type ssh
#
interface GigabitEthernet 3/1/1
port link-mode route
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
user privilege level 3
protocol inbound ssh
#
如图11所示,Router A采用SSH协议登录到Router B上。要求:
· Router B通过SSH的publickey认证方式对客户端进行认证,公钥算法为RSA。
· 登录用户名为client002,用户登录设备后可以正常使用所有命令。
图11 设备作为Stelnet客户端配置组网图
· 服务器在采用publickey方式验证客户端身份时,首先要比较客户端发送的SSH用户名、主机公钥是否与本地配置的SSH用户名以及相应的客户端主机公钥一致,在确认用户名和客户端主机公钥正确后,再对客户端发送的数字签名进行验证,而该签名是客户端利用主机公钥对应的私钥计算出的。因此,需要在服务器端配置客户端的RSA主机公钥,并在客户端为该SSH用户指定与主机公钥对应的RSA主机私钥(在向服务器发起连接时通过identity-key关键字指定公钥算法来实现)。
· publickey认证方式下,SSH用户登录后所能操作的命令权限由登录用户界面下user privilege level 命令配置的级别决定,为了使Router A登录Router B后要能正常使用所有命令,在Router B上将用户级别设置为3(管理级)。缺省为0(访问级)。
本举例是在SR8800-CMW520-R3725版本上进行配置和验证的。
· SSH用户登录的用户界面的认证方式必须配置为scheme方式。
· 如果SSH服务器采用publickey方式认证客户端,必须在服务器上创建相应的SSH用户。
· 虽然一个客户端只会采用DSA和RSA公钥算法中的一种来认证服务器,但是由于不同客户端支持的公钥算法不同,为了确保客户端能够成功登录服务器,请在服务器上同时生成DSA和RSA两种密钥对。
# 配置GigabitEthernet3/1/1的IP地址。
<RouterA> system-view
[RouterA] interface GigabitEthernet 3/1/1
[RouterA-GigabitEthernet3/1/1] ip address 192.168.1.56 255.255.255.0
[RouterA-GigabitEthernet3/1/1] quit
# 生成RSA密钥对。
[RouterA] public-key local create rsa
The range of public key size is (512 ~ 2048).
NOTES: If the key modulus is greater than 512,
It will take a few minutes.
Press CTRL+C to abort.
Input the bits of the modulus[default = 1024]:
Generating Keys...
++++++++
++++++++++++++
+++++
++++++++
# 将生成的RSA主机公钥导出到指定文件key.pub中。
[RouterA] public-key local export rsa ssh2 key.pub
[RouterA] quit
服务端的配置参见4.5.4 配置Router作为Stelnet服务器。
# 在Router A上运行如下命令,输入正确的用户名后即可成功登录到Router B上。
<RouterA> ssh2 192.168.1.40 identity-key rsa
Username: client002
Trying 192.168.1.40 ...
Press CTRL+K to abort
Connected to 192.168.1.40 ...
The Server is not authenticated. Continue? [Y/N]:y
Do you want to save the server public key? [Y/N]:n
· Router A
#
interface GigabitEthernet 3/1/1
port link-mode route
ip address 192.168.1.56 255.255.255.0
#
· Router B
#
public-key peer Router001
public-key-code begin
30819D300D06092A864886F70D010101050003818B0030818702818100A2DBC1FD76A837BEF5D322598442D6753B2E8F7ADD6D6209C80843B206B309078AFE2416CB4FAD496A6627243EAD766D57AEA70B901B4B4566D9A651B133BAE34E9B9F04E542D64D0E9814D7E3CBCDBCAF28FF21EE4EADAE6DF52001944A40414DFF280FF043B14838288BE7F9438DC71ABBC2C28BF78F34ADF3D1C912579A19020125
public-key-code end
peer-public-key end
#
local-user ftp
password cipher $c$3$sg9WgqO1w8vnAv2FKGTOYgFJm3nn2w==
authorization-attribute work-directory flash:/
authorization-attribute level 3
service-type ftp
#
interface GigabitEthernet 3/1/1
port link-mode route
ip address 192.168.1.40 255.255.255.0
#
ssh server enable
ssh user client001 service-type stelnet authentication-type publickey assign publickey Router001
#
user-interface vty 0 15
authentication-mode scheme
user privilege level 3
protocol inbound ssh
#
如图12所示,Host和Router之间建立SSH连接,Host作为SFTP客户端登录到Router,进行文件管理和文件传送等操作。要求:
· Router采用本地password认证的方式认证用户。
· SSH用户的用户名为client002,密码为aabbcc,用户登录设备后可以正常使用所有命令。
图12 设备作为SFTP服务器组网图
· 为了采用本地认证的方式认证用户,需在本地服务器Router上创建相应的本地用户,并在本地用户视图下配置密码,不需要创建SSH用户。
· 对于本地password认证,SSH用户登录后所能操作的命令权限由本地用户的级别决定。为了使SSH用户登录设备后要能正常使用所有命令,将用户级别设置为3(管理级),缺省情况下本地用户的级别为0(访问级)。
本举例是在SR8800-CMW520-R3725版本上进行配置和验证的。
· SSH用户登录的用户界面的认证方式必须配置为scheme方式。
· 为了保证SSH的版本协商和算法协商过程正常运行,请在服务器端配置生成RSA和DSA密钥对。
# 生成RSA及DSA密钥对。
<Router> system-view
[Router] public-key local create rsa
The range of public key size is (512 ~ 2048).
NOTES: If the key modulus is greater than 512,
It will take a few minutes.
Press CTRL+C to abort.
Input the bits of the modulus[default = 1024]:
Generating Keys...
++++++++
++++++++++++++
+++++
++++++++
[Router] public-key local create dsa
The range of public key size is (512 ~ 2048).
NOTES: If the key modulus is greater than 512,
It will take a few minutes.
Press CTRL+C to abort.
Input the bits of the modulus[default = 1024]:
Generating Keys...
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++
# 使能SSH服务器功能。
[Router] ssh server enable
# 启动SFTP服务器。
[Router] sftp server enable
# 配置接口GigabitEthernet3/1/1的IP地址,客户端将通过该地址连接SSH服务器。
[Router] interface GigabitEthernet 3/1/1
[Router-GigabitEthernet3/1/1] ip address 192.168.1.45 255.255.255.0
[Router-GigabitEthernet3/1/1] quit
# 设置SSH客户端登录用户界面的认证方式为scheme认证。
[Router] user-interface vty 0 15
[Router-ui-vty0-15] authentication-mode scheme
# 设置用户界面只支持SSH。
[Router-ui-vty0-15] protocol inbound ssh
[Router-ui-vty0-15] quit
# 创建本地用户client002,并设置用户的密码、服务类型和权限级别。
[Router] local-user client002
[Router-luser-client002] password simple aabbcc
[Router-luser-client002] service-type ssh
[Router-luser-client002] authorization-attribute level 3
[Router-luser-client002] quit
SFTP客户端软件有很多,本文中仅以客户端软件PuTTY0.58中的PSFTP为例,说明SFTP客户端的配置方法。
# 打开psftp.exe程序,出现如图13所示的客户端配置界面。输入如下命令:
open 192.168.1.45
# 根据提示输入用户名client002,密码aabbcc,即可登录SFTP服务器。
图13 SFTP客户端登录界面
客户端无配置文件,服务端配置文件如下:
#
local-user client002
password cipher $c$3$o71Exx1XIKs9gJoxqSodHGl1uT9rlZEd4w==
authorization-attribute level 3
service-type ssh
#
interface GigabitEthernet3/1/1
port link-mode route
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
protocol inbound ssh
#
如图14所示,Router A和Router B之间建立SSH连接,Router A登录到Router B进行文件管理和文件传送等操作。要求:
· Router B通过SSH的publickey认证方式对客户端进行认证,公钥算法为RSA。
· 登录用户名为client002。
图14 设备作为SFTP客户端组网图
· 服务器在采用publickey方式验证客户端身份时,首先要比较客户端发送的SSH用户名、主机公钥是否与本地配置的SSH用户名以及相应的客户端主机公钥一致,在确认用户名和客户端主机公钥正确后,再对客户端发送的数字签名进行验证,而该签名是客户端利用主机公钥对应的私钥计算出的。因此,需要在服务器端配置客户端的RSA主机公钥,并在客户端为该SSH用户指定与主机公钥对应的RSA主机私钥(在向服务器发起连接时通过identity-key关键字指定公钥算法来实现)。
· 采用从公钥文件导入的方式配置客户端公钥。服务器端可以通过手工配置和从公钥文件中导入两种方式来配置客户端的公钥。由于手工配置客户端的公钥时,输入的公钥必须满足一定的格式要求,否则会致客户端公钥保存失败。
本举例是在SR8800-CMW520-R3725版本上进行配置和验证的。
· SSH用户登录的用户界面的认证方式必须配置为scheme方式。
· 如果SSH服务器采用publickey方式认证客户端,必须在服务器上创建相应的SSH用户。
· 虽然一个客户端只会采用DSA和RSA公钥算法中的一种来认证服务器,但是由于不同客户端支持的公钥算法不同,为了确保客户端能够成功登录服务器,请在服务器上同时生成DSA和RSA两种密钥对。
· 采用publickey方式认证时,设备作为SFTP服务器或客户端,用户级别不能通过命令行配置,缺省均为最高级(管理级)。
# 配置接口GigabitEthernet3/1/1的IP地址。
<RouterA> system-view
[RouterA] interface GigabitEthernet 3/1/1
[RouterA-GigabitEthernet3/1/1] ip address 192.168.0.2 255.255.255.0
[RouterA-GigabitEthernet3/1/1] quit
# 生成RSA密钥对。
[RouterA] public-key local create rsa
The range of public key size is (512 ~ 2048).
NOTES: If the key modulus is greater than 512,
It will take a few minutes.
Press CTRL+C to abort.
Input the bits of the modulus[default = 1024]:
Generating Keys...
++++++++
++++++++++++++
+++++
++++++++
# 将生成的RSA主机公钥导出到指定文件pubkey中。
[RouterA] public-key local export rsa ssh2 pubkey
[RouterA] quit
客户端生成密钥对后,需要将保存的公钥文件pubkey通过FTP/TFTP方式上传到服务器,具体请参见8.5.3 配置FTP客户端上传公钥文件
# 配置接口GigabitEthernet3/1/1的IP地址。
<RouterB> system-view
[RouterB] interface GigabitEthernet 3/1/1
[RouterB-GigabitEthernet 3/1/1] ip address 192.168.0.1 255.255.255.0
[RouterB-GigabitEthernet 3/1/1] quit
# 在Router B上创建一个ftp类型的本地用户,用户名和密码均为“ftp”。
[RouterB] local-user ftp
New local user added.
[RouterB-luser-ftp] password simple ftp
[RouterB-luser-ftp] authorization-attribute level 3
[RouterB-luser-ftp] authorization-attribute work-directory flash:/
[RouterB-luser-ftp] service-type ftp
[RouterB-luser-ftp] quit
# 开启Router B的FTP服务器功能。
[RouterB] ftp server enable
[RouterB] quit
# Router A登录FTP服务器,并上传公钥文件。
<RouterA> ftp 192.168.0.1
Trying 192.168.0.1 ...
Press CTRL+K to abort
Connected to 192.168.0.1.
220 FTP service ready.
User(192.168.0.1:(none)):ftp
331 Password required for ftp.
Password:
230 User logged in.
[ftp] put pubkey
227 Entering Passive Mode (192,168,0,51,8,157).
125 ASCII mode data connection already open, transfer starting for /pubkey.
226 Transfer complete.
FTP: 1187 byte(s) sent in 0.206 second(s), 5.00Kbyte(s)/sec.
[ftp] quit
# 生成RSA及DSA密钥对。
<RouterB> system-view
[RouterB] public-key local create rsa
The range of public key size is (512 ~ 2048).
NOTES: If the key modulus is greater than 512,
It will take a few minutes.
Press CTRL+C to abort.
Input the bits of the modulus[default = 1024]:
Generating Keys...
++++++++
++++++++++++++
+++++
++++++++
[RouterB] public-key local create dsa
The range of public key size is (512 ~ 2048).
NOTES: If the key modulus is greater than 512,
It will take a few minutes.
Press CTRL+C to abort.
Input the bits of the modulus[default = 1024]:
Generating Keys...
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++
# 使能SSH服务器功能。
[RouterB] ssh server enable
# 启动SFTP服务器。
[RouterB] sftp server enable
# 设置登录用户界面的认证方式为scheme。
[RouterB] user-interface vty 0 15
[RouterB -ui-vty0-15] authentication-mode scheme
# 设置Router B上远程用户登录协议为SSH。
[RouterB-ui-vty0-15] protocol inbound ssh
[RouterB-ui-vty0-15] quit
# 从文件pubkey中导入远端的公钥,并命名为Router001。
[RouterB] public-key peer Router001 import sshkey pubkey
# 设置SSH用户client002的服务类型为SFTP,认证方式为publickey,并指定公钥为Router001,工作目录为cfa0:/。
[RouterB] ssh user client002 service-type sftp authentication-type publickey assign publickey Router001 work-directory cfa0:/
# 与远程SFTP服务器建立连接,进入SFTP Client视图。
<RouterA> sftp 192.168.0.1 identity-key rsa
Input Username: client002
Trying 192.168.0.1 ...
Press CTRL+K to abort
Connected to 192.168.0.1 ...
The Server is not authenticated. Continue? [Y/N]:y
Do you want to save the server public key? [Y/N]:n
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 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-client> delete z
The following File 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 pubkey
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 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-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 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-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 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-client>
# 退出SFTP客户端视图。
sftp-client> quit
Bye
Connection closed.
<RouterA>
· Router A
#
interface GigabitEthernet3/1/1
port link-mode route
ip address 192.168.0.2 255.255.255.0
#
public-key peer key1
public-key-code begin
308201B73082012C06072A8648CE3804013082011F02818100D757262C4584C44C211F18BD
96E5F061C4F0A423F7FE6B6B85B34CEF72CE14A0D3A5222FE08CECE65BE6C265854889DC1E
DBD13EC8B274DA9F75BA26CCB987723602787E922BA84421F22C3C89CB9B06FD60FE01941D
DD77FE6B12893DA76EEBC1D128D97F0678D7722B5341C8506F358214B16A2FAC4B36895038
7811C7DA33021500C773218C737EC8EE993B4F2DED30F48EDACE915F0281810082269009E1
4EC474BAF2932E69D3B1F18517AD9594184CCDFCEAE96EC4D5EF93133E84B47093C52B20CD
35D02492B3959EC6499625BC4FA5082E22C5B374E16DD00132CE71B020217091AC717B6123
91C76C1FB2E88317C1BD8171D41ECB83E210C03CC9B32E810561C21621C73D6DAAC028F4B1
585DA7F42519718CC9B09EEF038184000281804F123E6FB60EAAD74E169155138806388DFE
92F205416AF7071A1BCD07DBEE2F84FEDC92FFFBF24051DB613B125B001C2C52D3EA3082FE
CA02135BE9CBE9F383389FC92B472B08621ED85654FB5A11187F5E384A2E6BE82EFDCF089C
CA8632229E4EF50F22206EF5BED7EBD2784C6FB3A036DB68CB84FCAFACB75A3A3845FAB7
public-key-code end
peer-public-key end
#
· Router B
#
interface GigabitEthernet3/1/1
port link-mode route
ip address 192.168.0.1 255.255.255.0
#
ssh server enable
sftp server enable
ssh user client002 service-type sftp authentication-type publickey assign publickey Router001 work-directory cfa0:/
#
user-interface vty 0 15
authentication-mode scheme
protocol inbound ssh
#
· 《H3C SR8800系列万兆核心路由器 安全配置指导》中的“SSH”
· 《H3C SR8800系列万兆核心路由器 安全命令参考》中的“SSH”
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!