Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

为 NETCONF 会话建立 SSH 连接

为 NETCONF 会话建立 SSH 连接

您可使用 SSH 协议在配置管理服务器与运行新服务的设备Junos OS。如其名称所示,配置管理服务器用于配置远程运行Junos OS设备。

在配置管理服务器和运行新设备的之间建立连接时,有两个选项Junos OS:SSH 和出站 SSH。使用 SSH,配置管理服务器会与运行 Junos OS 的设备启动 SSH 会话。当配置管理服务器因网络限制(如防火墙)而无法发起 SSH 连接时,会使用出站 SSH。在这种情况下,运行 Junos OS 配置为启动、建立和维护与预定义的配置管理服务器集的 SSH 连接。有关出站 SSH 的完整讨论,请参阅 配置出站 SSH 服务

为 NETCONF 会话建立 SSH 连接的先决条件

在配置管理服务器与运行 Junos OS 的设备建立 SSH 连接之前,必须满足以下各节中讨论的要求。

在配置管理服务器上安装 SSH 软件

配置管理服务器处理配置管理服务器与运行新设备的 SSH Junos OS。因此,SSH 软件必须安装在配置管理服务器上本地。有关获取和安装 SSH 软件的信息 ,请参阅 http://www.ssh.com/ 和 http://www.openssh.com/

为运行 Junos OS 的设备上配置客户端应用程序的Junos OS

建立 NETCONF 会话时,配置管理服务器必须登录运行 Junos OS。因此,每个配置管理服务器在将建立 NETCONF 会话的每台设备上都需要一个用户帐户。以下说明介绍如何在运行 Junos OS 的设备上创建登录帐户。或者,您也可以跳过本部分并通过 RADIUS 或 TACACS+ 启用认证。

要确定正在运行的设备上是否存在登录帐户Junos OS,CLI设备进入默认配置模式并发出以下命令:

如果不存在相应的帐户,请执行以下步骤以创建一个:

  1. user 层次结构级别 [edit system login] 配置 语句并指定用户名。包括 class 语句,并指定具有应用程序要执行的所有操作所需的权限的登录类。
  2. 或者,在 层次结构 full-name 级别中包括 和 uid [edit system login user username] 语句。
  3. 提交配置以激活设备上用户帐户。
  4. 在运行该会话的每个设备上Junos OS步骤,其中客户端应用程序将建立 NETCONF 会话。

为 Junos OS 用户帐户配置公共/私有密钥对Junos OS密码

配置管理服务器需要 SSH 公共/私钥对、基于文本的密码或两者才能通过 NETCONF 服务器进行身份验证。如果帐户仅用于通过 SSH 连接到 NETCONF 服务器,则公共/私钥对就足以满足要求。如果帐户还用于以其他方式访问设备(例如,登录控制台),则必须具有基于文本的密码。如果配置了基于密钥的身份验证但失败,则还会使用密码(SSH 服务器提示)。

注意:

如果您选择通过安全认证或 TACACS+ 启用认证,可以跳过RADIUS节。

要创建基于文本的密码,请执行以下步骤:

  1. 在 层次结构 plain-text-password 级别中包括 或 encrypted-password [edit system login user username authentication] 语句。

    要输入密码作为文本,请发出以下命令。系统将提示您输入密码,此密码在存储之前已加密。

    要存储之前使用消息摘要 5 (MD5) 或安全散列算法 1 (SHA-1) 创建和散列的密码,请发出以下命令:

  2. 提交配置。
  3. 在运行该会话的每个设备上Junos OS步骤,其中客户端应用程序将建立 NETCONF 会话。

要创建 SSH 公共/私钥对,请执行以下步骤:

  1. 在运行客户端应用程序的配置管理服务器上,在标准 ssh-keygen 命令 shell(而非 Junos OS CLI)中发出 命令。

    通过提供相应的参数,您可使用 RSA(由 SSH 版本 1 和 2 支持)或数字签名算法(SSH 版本 2 支持的 DSA)对公钥进行编码。有关详细信息,请参阅 命令的手动 ssh-keygen 页面。Junos OS使用 SSH 版本 2,但也支持版本 1。

  2. 将公钥与 Junos OS 登录帐户关联,在 层次结构级别包含 load-key-file [edit system login user account-name authentication] 语句。

    Junos OS将指定文件的内容复制到运行 Junos OS。 URL是包含一个或多个公钥的文件的路径。默认情况下,命令将每个公钥存储在用户主目录的 .ssh 子目录中的文件中;文件名取决于编码 ssh-keygen (DSA 或 RSA)和 SSH 版本。 有关指定 URL 的信息,请参阅 CLI用户指南

    或者,您可以在 层次结构级别包含 一个或两个 和 ssh-dsa ssh-rsa ssh-dsa [edit system login user account-name authentication] 语句。但是,建议使用 语句,因为它无需键入或粘贴命令行上的公钥 load-key-file

  3. 提交配置。

  4. 在运行该测试的每个设备上,在Junos OS应用程序建立 NETCONF 会话的设备上重复步骤2和步骤3。

使用客户端应用程序访问密钥或密码

客户端应用程序必须能够访问配置的公钥/私钥或密码,在 NETCONF 服务器提示时提供。

有几种允许应用程序访问密钥或密码的方法:

  • 如果使用公共/私钥,ssh-agent 程序将运行在客户端应用程序运行的计算机中,并处理私钥。

  • 用户启动应用程序时,应用程序会提示用户输入密码,并安全临时存储。

  • 密码以加密形式存储在安全本地磁盘位置或安全数据库中。

在 SSH 上启用 NETCONF 服务

RFC 4742 使用安全 SHell (SSH) 上的 NETCONF配置协议,要求在通过专用的 IANA 分配的 TCP 端口建立 SSH 会话时,NETCONF 服务器默认为客户端设备提供对 NETCONF SSH 子系统的访问。使用专用端口可以轻松识别和过滤 NETCONF 流量。NETCONF-over-SSH 会话IANA分配的端口为 830。

您也可配置服务器以允许通过默认 SSH 端口 (22) 或通过明确配置的端口号访问 NETCONF SSH 子系统。显式配置的端口仅接受 NETCONF-over-SSH 会话,拒绝常规 SSH 会话请求。如果服务器上启用了 SSH 服务,即使配置了另一个 NETCONF-over-SSH 端口,默认 SSH 端口 (22) 也将继续接受 NETCONF 会话。为了增加安全性,您可配置利用信息的事件策略,以有效禁用默认端口或进一步限制端口 UI_LOGIN_EVENT 上的 NETCONF 服务器访问。

要针对运行 Junos OS 的设备上通过 SSH 启用 NETCONF 服务,请执行以下步骤:

  1. 在指示的配置层次结构级别中包括以下语句之一:

    • 要使用 RFC 4742 指定的默认 NETCONF-over-SSH 端口 (830) 启用对 NETCONF SSH 子系统的访问,请包括在 层次结构级别中的 netconf ssh [edit system services] 语句:

    • 要允许使用指定端口号访问 NETCONF SSH 子系统,请用所需端口号在 port [ ] edit system services netconf ssh 层次结构级别配置该语句。

      范围 port-number 为 1 到 65535。配置的端口仅接受 NETCONF-over-SSH 会话,拒绝常规 SSH 会话请求。

      注意:

      虽然 NETCONF-over-SSH 可以在 1 到 65535 的任何端口上配置,但您应避免在通常分配给其他服务的端口上配置访问。这种做法可以避免潜在的资源冲突。如果在为另一项服务分配的端口(例如 FTP)上配置 NETCONF-over-SSH,并且已启用该服务,则 不会显示资源冲突或发布任何此类警告 commit check 消息。

    • 要启用对使用默认 SSH 端口 (22) 的 NETCONF SSH 子系统的访问,请包含 层级 ssh [edit system services] 的 语句。此配置使得 SSH 能够访问设备的所有用户和应用程序。除了 ssh 前面列出的配置语句之外,该语句还可以包含在配置中。

  2. (可选)配置设备以断开无响应 NETCONF 客户端,具体方法包括指定超时间隔(以秒为单位),之后,如果未从客户端收到数据,sshd 进程会请求响应,以及触发断开的客户端活动响应丢失的阈值。
    注意:

    在层次结构级别配置的语句仅适用于通过默认端口 (830) 或通过在同一层级配置的用户定义端口连接的 [edit system services netconf ssh] NETCONF 会话。

  3. 提交配置:

  4. 在运行该会话的每个设备上Junos OS步骤,其中客户端应用程序将建立 NETCONF 会话。

为 NETCONF 会话建立出站 SSH 连接的先决条件

要启用配置管理服务器与 NETCONF 服务器建立出站 SSH 连接,必须满足以下各节中讨论的要求:

为出站 SSH Junos OS运行设备

要配置运行用于Junos OS SSH 的设备:

  1. [edit system services ssh] 层次结构级别,将 SSH 设置为 protocol-version v2:
  2. 为运行 Junos OS 的设备生成或获取公共/私钥Junos OS。此密钥对用于加密通过 SSH 连接传输的数据。
  3. 如果您是在配置管理服务器上手动安装公钥,请将其传输至配置管理服务器。
  4. [edit system services] 层次结构级别,包括 outbound-ssh 配置层次结构和任何所需语句。

    选项如下:

    address

    (必填)管理服务器的主机名、IPv4 或 IPv6 地址。您可以通过添加每个客户端的 IP 地址或主机名以及以下连接参数列出多个客户端。

    • port port-number—客户端的出站 SSH 端口。默认值为端口 22。

    • retry number– 设备尝试建立出站 SSH 连接次数。默认值为三次尝试。

    • timeout seconds— 运行该流量的设备尝试建立Junos OS SSH 连接的时间量,以秒为秒。默认设置为每尝试 15 秒。

      注意:

      从 15.1 Junos OS开始,Junos OS具有 IPv6 地址的设备支持出站 SSH 连接。

    client client-id

    (必填)标识 outbound-ssh 设备上配置部分。每个 outbound-ssh 区位都表示单个出站 SSH 连接。此属性不会发送至客户端。

    device-id device-id

    (必填)识别在初始Junos OS客户端上运行的设备。

    keep-alive

    (可选)指定设备将向管理服务器发送活动消息。要配置活动消息,您必须设置 timeoutretry 属性。要配置活动消息,您必须同时配置 timeoutretry 语句。

    • retry number—设备在终止当前 SSH 连接之前在未从管理服务器收到响应的情况下发送的同步消息数。默认值为三次尝试。

    • timeout seconds— 服务器在发送启动信号之前等待数据的时间量,以秒为秒。默认值为 15 秒。

    reconnect-strategy (sticky | in-order)

    (可选)指定运行 SSH 的设备Junos OS重新建立断开连接的出站 SSH 连接的方法。有两种方法可用:

    • in-order—指定路由器或交换机首次尝试基于管理服务器地址列表建立出站 SSH 会话。路由器或交换机会尝试与列表中的第一台服务器建立会话。如果此连接不可用,路由器或交换机将尝试与下一台服务器建立会话,在建立连接之前一直进行此类操作。

    • sticky—指定路由器或交换机首次尝试重新连接到最后连接到的管理服务器。如果连接不可用,则尝试与列表中的下一个客户端建立连接,等等,直至建立连接。

    secret password

    (可选)设备的公共 SSH 主机密钥。如果添加到 语句中,在出站 SSH 服务的初始化期间,路由器或交换机会将其公钥传递 outbound-ssh 至管理服务器。这是维护设备公钥当前副本的推荐方法。

    services netconf

    (必填)指定可用于会话的服务。目前,NETCONF 是唯一可用的服务。

  5. 提交配置:

在客户端安装 SSH 软件

设备与配置管理服务器建立 SSH 连接后,配置管理服务器将控制 SSH 会话。因此,SSH 客户端软件必须安装在配置管理服务器上本地。有关获取和安装 SSH 软件的信息 ,请参阅 http://www.ssh.com/ 和 http://www.openssh.com/

在客户端接收和管理出站 SSH 初始化顺序

为出站 SSH 配置时,运行 Junos OS将尝试与配置管理服务器保持恒定连接。只要未建立出站 SSH 会话,设备就会将出站 SSH 初始化顺序发送到设备配置管理服务器列表中列出的配置管理服务器。与设备建立连接之前,必须设置每个配置管理服务器以接收此初始化顺序,与设备建立 TCP 连接,并将设备身份传输回设备。

初始顺序采用两种形式之一,具体取决于您选择Junos OS服务器公钥的方式。

如果在配置管理服务器上手动安装公钥,则初始化顺序采用以下形式:

如果公钥在初始化顺序期间由设备转发至配置管理服务器,则顺序采用以下形式:

在 SSH 上启用 NETCONF 服务

RFC 4742 使用安全 SHell (SSH) 上的 NETCONF配置协议,要求在通过专用的 IANA 分配的 TCP 端口建立 SSH 会话时,NETCONF 服务器默认为客户端设备提供对 NETCONF SSH 子系统的访问。使用专用端口可以轻松识别和过滤 NETCONF 流量。NETCONF-over-SSH 会话IANA分配的端口为 830。

您也可配置服务器以允许通过默认 SSH 端口 (22) 或通过明确配置的端口号访问 NETCONF SSH 子系统。显式配置的端口仅接受 NETCONF-over-SSH 会话,拒绝常规 SSH 会话请求。如果服务器上启用了 SSH 服务,即使配置了另一个 NETCONF-over-SSH 端口,默认 SSH 端口 (22) 也将继续接受 NETCONF 会话。为了增加安全性,您可配置利用信息的事件策略,以有效禁用默认端口或进一步限制端口 UI_LOGIN_EVENT 上的 NETCONF 服务器访问。

要针对运行 Junos OS 的设备上通过 SSH 启用 NETCONF 服务,请执行以下步骤:

  1. 在指示的配置层次结构级别中包括以下语句之一:

    • 要使用 RFC 4742 指定的默认 NETCONF-over-SSH 端口 (830) 启用对 NETCONF SSH 子系统的访问,请包括在 层次结构级别中的 netconf ssh [edit system services] 语句:

    • 要允许使用指定端口号访问 NETCONF SSH 子系统,请用所需端口号在 port [ ] edit system services netconf ssh 层次结构级别配置该语句。

      范围 port-number 为 1 到 65535。配置的端口仅接受 NETCONF-over-SSH 会话,拒绝常规 SSH 会话请求。

      注意:

      虽然 NETCONF-over-SSH 可以在 1 到 65535 的任何端口上配置,但您应避免在通常分配给其他服务的端口上配置访问。这种做法可以避免潜在的资源冲突。如果在为另一项服务分配的端口(例如 FTP)上配置 NETCONF-over-SSH,并且已启用该服务,则 不会显示资源冲突或发布任何此类警告 commit check 消息。

    • 要启用对使用默认 SSH 端口 (22) 的 NETCONF SSH 子系统的访问,请包含 层级 ssh [edit system services] 的 语句。此配置使得 SSH 能够访问设备的所有用户和应用程序。除了 ssh 前面列出的配置语句之外,该语句还可以包含在配置中。

  2. 提交配置:

  3. 在运行该会话的每个设备上Junos OS步骤,其中客户端应用程序将建立 NETCONF 会话。

版本历史记录表
释放
描述
15.1
从 Junos OS 15.1 版开始,Junos OS具有 IPv6 地址的设备支持出站 SSH 连接。