SSH(Secure Shell 安全外壳)是一种安全的远程登录协议。基于 TCP 进行传输,端口号是 22。

SSH 协议的特点:1.支持 DES、3DES 数据加密算法;2.支持公钥验证方式、密码验证方式、不验证方式;3.支持 RSA 认证,具有防篡改功能。SSH 协议是一种在不安全的网络环境中,通过加密和认证机制,实现安全远程访问及文件传输等业务的网络安全协议。

Telnet 数据采用明文传输,只支持传统密码认证方式,并且无法识别服务器身份。SSH 协议正是为了克服 Telnet 协议存在的问题而诞生的。FTP 也面临和 Telnet 相同问题。为解决 FTP 安全性问题,在 SSH 协议基础上扩展了对 FTP 安全性的支持,即 SFTP。

* SSH 的协议框架:

h3c服务器配置(一文让你弄清H3C设备SSH配置)(1)

(1)传输层协议主要用来在客户端和服务器之间建立一条安全的加密通道,为用

户认证、数据交互等对数据传输安全性要求较高的阶段提供足够的机密性保

护。传输层提供了如下功能:1.数据真实性检查;2.数据完整性检查;3.为客

户端提供了对服务器进行认证的功能。

(2)认证层协议:运行在传输层协议之上,完成服务器对登录用户的认证。

(3)连接层协议:负责在加密通道上划分出若干逻辑通道,以运行不同的应用。

它运行在认证层协议之上,提供交互会话、远程命令执行等服务。

ssh连接建立过程

h3c服务器配置(一文让你弄清H3C设备SSH配置)(2)

(1)服务器端和客户端收到对端发送过来的版本后,与本端的版本号进行比较,双方都支持的最高版本号即为协商出的版本号。(SSH1.99 为特殊的版本号,这个版本既可以与 SSH2.0 版本互通,又可以与 SSH1.5 版本互通)

(2)由于各种客户端和服务器对这些算法的支持情况不一样,需要通过算法协商阶段,使客户端和服务器协商出双方都支持算法。

(3)用户认证过程为:

1、客户端向服务器端发送认证请求报文,其中携带的认证方式为“none”。

2、服务器收到 none 方式认证请求,回复认证挑战报文。

3、客户端从服务器发送给自己的认证方式列表中选择某种认证方式,向服务器发起认证请求,认证请求中包含用户名、认证方法、与该认证方法相关的内容:1.密码认证方式中、2.公钥认证方式中。

4、服务器接收到客户端的认证请求,验证客户端的认证信息:1.密码认证方式、2.公钥认证方式。

5、服务器根据本端上该用户的配置,以及用户认证的完成情况,决定是否需要客户端继续认证,分为以下几种情况:

1.如果该种认证方式认证成功,且该用户不需要继续完成其他认证,则服务器回复认证成功消息,认证过程顺利完成。

2.如果该种认证方式认证成功,但该用户还需要继续完成其他认证,则回复认证失败消息,继续向客户端发出认证挑战,在报文中携带服务器需要客户端继续完成的认证方式列表;

3.如果该种认证方式认证失败,用户的认证次数尚未到达认证次数的最大值,服务器继续向客户端发送认证挑战;

4.如果该种认证方式认证失败,且用户的认证次数达到认证次数的最大值,用户认证失败,服务器断开和客户端之间的连接。

认证挑战战是指 SSH 服务器将用户需要完成的认证方式列表发送给用户,要求用户从中选择一种,继续发起认证请求。用户未完成认证时,服务器都会通过这种发送认证列表的方式,要求用户进行认证。

* SFTP 是 SSH 2.0 中支持的功能;SFTP 建立在 SSH 连接的基础之上;SFTP 使得远程用户可以安全地登录设备,进行文件操作。

*(1)配置 SSH 服务器-基本配置:

·生成 DSA 或 RSA 密钥对:[SWA] public-key local create {dsa|rsa}

·使能 SSH 服务器功能:[SWA] ssh server enable

(2)配置 SSH 服务器-用户配置:

配置客户端登录的用户界面为 scheme 方式:[SWA-ui-vty0-4] authentication-mode scheme

配置所在用户界面支持 SSH 协议:[SWA-ui-vty0-4] protocol inbound {all|ssh|telnet}

配置 SSH 用户并指定服务类型和认证方式:[SWA] ssh user username service-type stelnet authentication-type {password|{any|password-publickey|publickey} assign publickey keyname}

(3)配置 SSH 服务器-公钥认证:·从公钥文件中导入客户端的公钥:[SWA] public-key peer keyname import sshkey filename

·手工配置客户端的公钥:

1.[SWA] public-key peer keyname 2.[SWA-pkey-public-key] public-key-code begin 3.[SWA-pkey-key-code]输入公钥内容

4.[SWA-pkey-key-code] public-key-code end 5.[SWA-pkey-public-key]peer-public-key end

(4)配置 SSH 客户端:

·为 SSH 客户端指定源 IP 地址或源接口:[SWA] ssh client source {ip ip-address|interface interface-type interface-number}

·建立 SSH 客户端和服务器端的连接:[SWA] ssh2 server [port-number]

SSH 配置示例-密码认证:

SSH server配置:

[SWA] public-key local create rsa

[SWA] ssh server enable

[SWA] user-interface vty 0 4

[SWA-ui-vty0-4] authentication-mode scheme

[SWA-ui-vty0-4] protocol inbound ssh

[SWA] local-user client001

[SWA-luser-client001] password simple aabbcc

[SWA-luser-client001] service-type ssh level 3

[SWA] ssh user client001 service-type stelnet

authentication-type password

SSH Client配置:

<SWB> ssh2 10.0.0.1

Username: client001

Trying 10.0.0.1 ...

Press CTRL K to abort

Connected to 10.0.0.1 ...

The Server is not authenticated. Continue? [Y/N]:y

Do you want to save the server public key? [Y/N]:n

Enter password:

SSH 配置示例-公钥认证:

SSH server配置:

[SWA] public-key local create rsa

[SWA] ssh server enable

[SWA] user-interface vty 0 4

[SWA-ui-vty0-4] authentication-mode scheme

[SWA-ui-vty0-4] protocol inbound ssh

[SWA-ui-vty0-4] user privilege level 3

[SWA] public-key peer Switch001 import sshkey key.pub

[SWA] ssh user client002 service-type stelnet

authentication-type publickey assign publickey Switch001

SSH Client配置:

[SWB] public-key local create rsa

[SWB] public-key local export rsa ssh2 key.pub

<SWB> ssh2 10.0.0.1

Username: client002

Trying 10.0.0.1 ...

Press CTRL K to abort

Connected to 10.0.0.1 ...

The Server is not authenticated. Continue? [Y/N]:y

Do you want to save the server public key? [Y/N]:n

SFTP 相关配置: ·启动 SFTP 服务器:[SWA] sftp server enable

·配置 SSH 用户并指定服务类型和认证方式:[SWA] ssh user username service-type {all|sftp} authentication-type

{password|{any|password-publickey|publickey} assign publickey keyname work-directory directory-name}

·建立与 SFTP 服务器的连接:[SWA] sftp server [port-number]

h3c服务器配置(一文让你弄清H3C设备SSH配置)(3)

SSH显示与维护:

①在 SSH 服务器端显示该服务器的状态信息或会话信息

display ssh server {status|session}

②在 SSH 客户端显示客户端保存的服务器端的主机公钥和服务器的对应关系

display ssh server-info

③在 SSH 服务器端显示 SSH 用户信息

display ssh user-information [username]

④显示本地密钥对中的公钥部分

display public-key local {dsa|rsa} public

⑤显示保存在本地的远端主机的公钥信息

display public-key peer [brief|name publickey-name]

,