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 设备之间建立连接。您可以使用配置管理服务器远程配置 Junos 设备。

您可以使用以下选项在配置管理服务器和 Junos 设备之间建立 SSH 连接。

  • SSH — 配置管理服务器启动与 Junos 设备的 SSH 会话。

  • 出站 SSH - 当配置管理服务器由于网络限制(如防火墙)而无法启动 SSH 连接时,请使用此选项。在这种情况下,您可以将 Junos 设备配置为启动、建立和维护与一组预定义的配置管理服务器的 SSH 连接。

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

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

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

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

通过 SSH 启用 NETCONF 服务

要在 Junos 设备上建立 NETCONF 会话,必须启用 NETCONF 服务。您可以将 NETCONF 服务器配置为接受以下端口上的 NETCONF 会话:

  • 默认 NETCONF 端口 (830) 或用户定义的端口

  • 默认 SSH 端口 (22)

我们建议您使用默认的 NETCONF 端口,因为它使设备能够轻松识别和过滤 NETCONF 流量。或者,您可以将设备配置为接受特定端口上的 NETCONF 会话,而不是默认 NETCONF 端口。定义的端口仅接受 NETCONF-over-SSH 会话,并拒绝常规 SSH 会话请求。如果还在服务器上启用 SSH 服务,设备将同时接受默认 SSH 端口和配置的 NETCONF 端口(默认或用户定义端口)上的 NETCONF 会话。为了提高安全性,您可以配置事件策略,这些策略利用 UI_LOGIN_EVENT 信息来有效地禁用默认端口或进一步限制端口上的 NETCONF 服务器访问。

要在 Junos 设备上通过 SSH 启用 NETCONF 服务,请执行以下操作:

  1. 在默认 NETCONF 端口 (830) 或用户定义的端口上启用 NETCONF 服务:

    • 要使用默认的 NETCONF 端口 (830),请在层次结构级别包含 netconf ssh 以下语句 [edit system services]

    • 要使用特定端口,请在 port [edit system services netconf ssh] 层次结构级别使用所需的端口号配置语句。

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

      注意:

      尽管可以在 1 到 65535 之间的任何端口上配置 NETCONF-over-SSH 会话,但应避免在通常为其他服务分配的端口上配置访问权限。这种做法可避免潜在的资源冲突。如果配置了为其他服务(如 FTP)分配的端口,并且启用了该服务,则 不会 commit check 显示资源冲突或发出任何警告消息。

  2. (可选)要同时使用默认 SSH 端口 (22) 启用对 NETCONF SSH 子系统的访问,请在层次结构级别包含 ssh 该语句 [edit system services]

    此配置允许所有用户和应用程序对设备进行 SSH 访问。

    注意:

    在默认行为是限制根用户使用 SSH 服务的版本中,您必须在[edit system services ssh]层次结构级别配置root-login allow语句,以使根用户能够通过 SSH 打开 NETCONF 会话。

  3. (可选)将设备配置为断开无响应的 NETCONF 客户端的连接。

    指定超时间隔(以秒为单位),在此间隔之后,如果未从客户端收到任何数据,则 sshd 进程将请求响应。此外,指定触发断开连接的错过客户端活动响应的阈值。

    注意:

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

  4. 提交配置:

  5. 在客户端应用程序建立 NETCONF 会话的每台运行 Junos OS 的设备上重复上述步骤。

为 Junos 设备上的客户端应用程序配置用户帐户

配置管理服务器必须登录到 Junos 设备才能建立 NETCONF 会话。因此,配置管理服务器在其建立 NETCONF 会话的每台设备上都需要一个用户帐户。以下说明说明如何在 Junos 设备上创建本地用户帐户。或者,您可以跳过此部分,通过 RADIUS 或 TACACS+ 启用身份验证。

要创建本地用户帐户,请执行以下操作:

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

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

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

注意:

如果您选择通过 RADIUS 或 TACACS+ 启用身份验证,则可以跳过此部分。

要创建基于文本的密码:

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

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

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

  2. 提交配置。
  3. 在客户端应用程序建立 NETCONF 会话的每台设备上重复上述步骤。

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

  1. 在运行客户端应用程序的配置管理服务器上,在标准命令外壳中发出 ssh-keygen 命令并提供相应的参数。

    有关 ssh-keygen 选项的详细信息,请参阅该 ssh-keygen 命令的手册页。

  2. 将公钥与 Junos OS 登录帐户关联。

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

    注意:

    或者,您可以在层次结构级别包含ssh-rsa[edit system login user account-name authentication]语句。但是,我们建议使用该load-key-file语句,因为它消除了在命令行上键入或剪切粘贴公钥的需要。

  3. 提交配置。

  4. 在客户端应用程序建立 NETCONF 会话的每个 Junos 设备上重复步骤 2 和步骤 3

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

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

有几种方法可以使应用程序访问密钥或密码:

  • 如果使用公钥/私钥,则 ssh-agent 程序将在运行客户端应用程序的设备上运行,并处理私钥。

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

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

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

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

在客户端上安装 SSH 软件

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

通过 SSH 启用 NETCONF 服务

要在 Junos 设备上建立 NETCONF 会话,必须启用 NETCONF 服务。您可以将 NETCONF 服务器配置为接受以下端口上的 NETCONF 会话:

  • 默认 NETCONF 端口 (830) 或用户定义的端口

  • 默认 SSH 端口 (22)

我们建议您使用默认的 NETCONF 端口,因为它使设备能够轻松识别和过滤 NETCONF 流量。或者,您可以将设备配置为接受特定端口上的 NETCONF 会话,而不是默认 NETCONF 端口。定义的端口仅接受 NETCONF-over-SSH 会话,并拒绝常规 SSH 会话请求。如果还在服务器上启用 SSH 服务,设备将同时接受默认 SSH 端口和配置的 NETCONF 端口(默认或用户定义端口)上的 NETCONF 会话。为了提高安全性,您可以配置事件策略,这些策略利用 UI_LOGIN_EVENT 信息来有效地禁用默认端口或进一步限制端口上的 NETCONF 服务器访问。

要在 Junos 设备上通过 SSH 启用 NETCONF 服务,请执行以下操作:

  1. 在默认 NETCONF 端口 (830) 或用户定义的端口上启用 NETCONF 服务:

    • 要使用默认的 NETCONF 端口 (830),请在层次结构级别包含 netconf ssh 以下语句 [edit system services]

    • 要使用特定端口,请在 port [edit system services netconf ssh] 层次结构级别使用所需的端口号配置语句。

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

      注意:

      尽管可以在 1 到 65535 之间的任何端口上配置 NETCONF-over-SSH 会话,但应避免在通常为其他服务分配的端口上配置访问权限。这种做法可避免潜在的资源冲突。如果配置了为其他服务(如 FTP)分配的端口,并且启用了该服务,则 不会 commit check 显示资源冲突或发出任何警告消息。

  2. (可选)要同时使用默认 SSH 端口 (22) 启用对 NETCONF SSH 子系统的访问,请在层次结构级别包含 ssh 该语句 [edit system services]

    此配置允许所有用户和应用程序对设备进行 SSH 访问。

    注意:

    在默认行为是限制根用户使用 SSH 服务的版本中,您必须在[edit system services ssh]层次结构级别配置root-login allow语句,以使根用户能够通过 SSH 打开 NETCONF 会话。

  3. (可选)将设备配置为断开无响应的 NETCONF 客户端的连接。

    指定超时间隔(以秒为单位),在此间隔之后,如果未从客户端收到任何数据,则 sshd 进程将请求响应。此外,指定触发断开连接的错过客户端活动响应的阈值。

    注意:

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

  4. 提交配置:

  5. 在客户端应用程序建立 NETCONF 会话的每台运行 Junos OS 的设备上重复上述步骤。

将 Junos 设备配置为出站 SSH

要将 Junos 设备配置为出站 SSH,请执行以下操作:

  1. [edit system services ssh] 层次结构级别,将 SSH protocol-version 设置为 v2:
  2. 为运行 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 秒。

      注意:

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

    client client-id

    (必填)标识 outbound-ssh 设备上的配置节。每个 outbound-ssh 节表示一个出站 SSH 连接。此属性不会发送到客户端。

    device-id device-id

    (必填)在启动序列期间向客户端标识运行 Junos OS 的设备。

    keep-alive

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

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

    • timeout seconds- 服务器在发送激活信号之前等待数据的时间量(以秒为单位)。默认值为 15 秒。

    reconnect-strategy (sticky | in-order)

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

    • in-order— 指定路由器或交换机首先尝试根据管理服务器地址列表建立出站 SSH 会话。路由器或交换机尝试与列表中的第一台服务器建立会话。如果此连接不可用,路由器或交换机将尝试与下一台服务器建立会话,依此类推,直到建立连接。

    • sticky— 指定路由器或交换机首先尝试重新连接到上次连接的管理服务器。如果连接不可用,它将尝试与列表中的下一个客户端建立连接,依此类推,直到建立连接。

    secret password

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

    services netconf

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

  5. 提交配置:

在客户端上接收和管理出站 SSH 启动序列

配置为出站 SSH 时,Junos 设备会尝试与配置管理服务器保持持续连接。如果未建立出站 SSH 会话,设备就会将出站 SSH 启动序列发送到设备配置管理服务器列表中列出的配置管理服务器。在与设备建立连接之前,必须将每个配置管理服务器设置为接收此启动序列,与设备建立 TCP 连接,并将设备标识传输回设备。

启动顺序采用以下两种形式之一,具体取决于您选择如何处理 Junos OS 服务器的公钥。

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

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

更改历史记录表

功能支持由您使用的平台和版本决定。使用功能资源管理器确定您的平台是否支持某个 功能

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