SSH(Secure Shell)是一种安全的远程登录协议。基于TCP进行传输,端口号是22。
SSH协议的特点:
在整个工作过程中,为实现SSH的安全连接,服务器端与客户端要经历如下五个阶段:
在系统视图下配置生成 DSA、ECDSA或RSA密钥,在某些早期软件版本中仅支持RSA公钥算法:
[SWA]public-key local create rsa
SSH服务缺省处于关闭状态,在系统视图下使能 SSH 服务:
[SWA]ssh server enable
SSH客户端通过VTY用户界面访问设备,因此需要配置SSH客户端登录时采用的VTY用户界面,使其支持SSH远程登录协议。配置客户端下次请求登录时生效。
在VTY界面视图下配置登录用户界面的认证方式为scheme方式:
[SWA]user-interface vty 0 4 #进入VTY视图
[SWA-line-vty0-4]authentication-mode scheme #配置登录用户界面的认证方式为scheme方式
在VTY界面视图下配置所在用户界面支持SSH协议:
[SWA-line-vty0-4]protocol inbound ssh
缺省情况下,系统支持所有协议。
SSH用户具有两种服务类型:Stelnet和SFTP。Stelnet即Secure Telnet,是指传统的SSH服务;SFTP即 Secure FTP。
如果要使用传统的SSH服务,需要在系统视图下配置SSH用户为Stelnet服务类型并指定认证方式:
[SWA]ssh user [username] service-type stelnet authentication-type { password | {any | password-publickey | publickey} assign {pki-domain [domain-name] | publickey [keyname]}}
SSH用户采用publickey认证方式时,需要在服务器端配置客户端的DSA、ECDSA或RSA主机公钥,并在客户端为该SSH用户指定与主机公钥对应的DSA、ECDSA或RSA私钥,以便当客户端登录服务器时,对客户端进行验证。
可以通过从公钥文件中导入和手工配置两种方式来在服务器端配置客户端的公钥。
SWA是SSH服务器,SWB是SSH客户端。SSH用户采用的认证方式为password。
在SWA上配置生成RSA密钥对,并启动SSH服务器。
[SWA]public-key local create rsa
[SWA]ssh server enable
设置SSH客户端登录用户界面的认证方式为AAA认证,并设置SWA上远程用户登录协议为SSH。
[SWA]user-interface vty 0 4
[SWA-line-vty0-4]authentication-mode scheme
[SWA-line-vty0-4]protocol inbound ssh
创建本地用户 famo ,并设置用户角色为network-admin;配置SSH用户famo的服务类型为Stelnet,认证方式为password认证。
[SWA]public-key local create rsa
[SWA]ssh server enable
[SWA]user-interface vty 0 4
[SWA-line-vty0-4]authentication-mode scheme
[SWA-line-vty0-4]protocol inbound ssh
[SWA]local-user famo
[SWA-luser-manage-famo]password simple zx123456
[SWA-luser-manage-famo]service-type ssh
[SWA-luser-manage-famo]authorization-attribute user-role network-admin
[SWA]ssh user famo service-type stelnet authentication-type password
配置生成RSA密钥对,并启动SSH服务;设置SSH客户端登录界面认证方式为AAA认证,并设置SWA上远程登录用户协议为SSH,并配置用户角色为network-admin。
[SWA]public-key local create rsa
[SWA]ssh server enable
[SWA]user-interface vty 0 4
[SWA-line-vty0-4]authentication-mode scheme
[SWA-line-vty0-4]protocol inbound ssh
在SSH客户端SWB上生成RSA密钥对,并将生成的RSA主机公钥导入到指定文件key.pub中。
[SWB]public-key local create rsa
[SWB]public-key local export rsa ssh2 key.pub
客户端生成密钥对后,需要将保存的公钥文件key.pub通过FTP/TFTP方式上传到SSH服务器SWA上
[SWA]public-key peer SWB import sshkey key.pub
[SWA]local-user client
[SWA-luser-manage-client]service-type ssh
[SWA-luser-manage-client]authorization-attribute user-role network-admin
[SWA]ssh user client service-type stelnet authentication-type publickey assign p
ublickey SWB
FTP和SFTP协议相比,FTP提供了必要的可靠性,然而对于一些要求网络安全级别比较高,需要严格防范传输数据被监听的情况来说,FTP就无法胜任了。 SFTP(SSH File Transfer Protocol 或 Secure File Transfer Protocol)是SSH2.0中支持的功能。和SFTP传输协议默认采用加密方式来传输数据。SFTP建立在SSH连接的基础之上,他使得远程用户可以安全地登录设备,进行文件管理和文件传送等操作,为数据传输提供了更高的安全保障。同时,由于设备支持作为客户端的功能,用户可以从本地设备安全登录到远程设备上,进行文件的安全传输。
ftp server enable
local-user [user]
password simple [passwd]
service-type [ftp]
authorization-attribute user-role network-admin
SWA是SFTP服务器,SWB是SFTP客户端。
与SSH配置一样,需要在SWA上配置生成RSA密钥对,并启动SSH服务器。与此同时,为了提供SFTP服务,还需在SWA上启动SFTP服务器。
[SWA]public-key local create rsa
[SWA]ssh server enable
[SWA]sftp server enable
设置SFTP客户端登录用户界面的认证方式为AAA认证,并设置SWA上远程用户登录协议为SSH。
[SWA]user-interface vty 0 4
[SWA-line-vty0-4]authentication-mode scheme
[SWA-line-vty0-4]protocol inbound ssh
因为使用公钥认证,需要在SSH客户端SWB上生成RSA密钥对,并将生成的RSA主机公钥导出到指定文件key.pub中。
[SWB]public-key local create rsa
[SWB]public-key local export rsa ssh2 key.pub
客户端生成密钥对后,需要将保存的公钥key.pub通过FTP/SFTP方式上传到SSH服务器SWA上。
[SWA]public-key peer SWB import sshkey key.pub
设置SFTP用户client服务类型为SFTP,认证方式为publickey,并指定公钥为SWB,工作目录为flash:/。
[SWA]local-user client class manage
[SWA-luser-manage-client]service-type ssh
[SWA-luser-manage-client]authorization-attribute user-role network-admin work-directory flash:/
[SWA]ssh user client service-type sftp authentication-type publickey assign publickey SWB
在SWB上建立到服务器的SFTP连接,并指明用户client登录:
sftp 10.0.0.1 identity-key rsa
The server is not authenticated. Continue? [Y/N]:y
Do you want to save the server public key? [Y/N]:n