Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

远程访问概述

您(网络管理员)可以使用 DHCP、Finger、FTP、rlogin、SSH 和 Telnet 服务等服务远程访问路由器、交换机或安全设备。本主题介绍如何使用 Telnet、SSH、FTP 和 Finger 服务配置远程访问。

系统服务概述

出于安全考虑,默认情况下禁用对路由器的远程访问。您必须显式配置路由器,以便远程系统上的用户能够对其进行访问。用户可以通过 DHCP、手指、FTP、rlogin、SSH 和 Telnet 服务从远程系统访问路由器。此外,Junos XML 协议客户端应用程序可以使用安全套接字层 (SSL) 或 Junos XML 协议特定的明文服务,以及其他服务。

注意:

为了保护系统资源,您可以限制服务接受的同步连接数以及单个用户拥有的进程数。如果超过任一限制,连接尝试将失败。

配置 Telnet 服务,以便远程访问路由器或交换机

要配置路由器或交换机以接受 Telnet 作为接入服务,请在 telnet 层次结构级别添加语句 [edit system services]

默认情况下,路由器或交换机每分钟支持有限数量的同步 Telnet 会话和连接尝试。

或者,您可以包括以下一个或两个语句来更改默认值:

  • connection-limit limit—每个协议的最大同步连接数(IPV4 和 IPv6)。范围从 1 到 250。默认为 75。配置连接限制时,此限制适用于每个协议的 telnet 会话数(IPv4 和 IPv6)。例如,连接限制 10 允许 10 个 IPv6 telnet 会话和 10 个 IPv4 telnet 会话。

  • rate-limit limit-每分钟接受的最大连接尝试次数(从 1 到 250)。默认值为 150。配置速率限制时,此限制适用于每个协议(IPv4 和 IPv6)的连接尝试次数。例如,10 的速率限制允许每分钟 10 次 IPv6 telnet 会话连接尝试,每分钟 10 次 IPv4 telnet 会话连接尝试。

配置 FTP 服务,以便远程访问路由器或交换机

要将设备配置为接受 FTP 作为接入服务,请在 ftp 层次结构级别添加语句 [edit system services]

您可以使用被动 FTP 访问仅接受无源 FTP 服务的设备。使用 FTP 的所有命令和语句也接受被动 FTP。在 ftp 层次结构级别包含该语句 [edit system services] ,以使用主动 FTP 或被动 FTP。

要启动被动 FTP 会话,请使用 pasvftp (而非 ftp )标准 FTP 格式 (ftp://destination)。例如:

配置手指服务,实现对路由器的远程访问

要将路由器配置为接受手指作为接入服务,请在 finger 层次结构级别添加语句 [edit system services]

配置 SSH 服务,用于远程访问路由器或交换机

要配置路由器或交换机以接受 SSH 作为接入服务,请在 ssh 层次结构级别添加语句 [edit system services]

默认情况下,路由器或交换机每分钟支持有限数量的同步 SSH 会话和连接尝试。使用以下语句更改默认值:

  • connection-limit limit—每个协议的最大同步连接数(IPv4 和 IPv6)。范围是 1 到 250 范围内的值。默认为 75。配置连接限制时,此限制适用于每个协议的 SSH 会话数(IPv4 和 IPv6)。例如,连接限制为 10,允许 10 个 IPv6 SSH 会话和 10 个 IPv4 SSH 会话。

  • max-sessions-per-connection number-包括此语句以指定每个 SSH 连接允许的最大 SSH 会话数。这允许您限制单个 SSH 连接内隧道传输的克隆会话数。默认值为 10。

  • rate-limit limit-每分钟接受的最大连接尝试数(从 1 到 250 的值)。默认值为 150。配置速率限制时,此限制适用于每个协议(IPv4 和 IPv6)的连接尝试次数。例如,10 的速率限制允许每分钟 10 次 IPv6 会话连接尝试,每分钟 10 次 IPv4 会话连接尝试。

  • data-limit—重新协商会话密钥之前的数据限制(字节)

  • time-limit—重新协商会话密钥前的时间限制(分钟)

默认情况下,用户可通过 CLI 会话创建到通过 SSH 运行 Junos OS 的路由器的 SSH 隧道。这种类型的隧道可用于转发 TCP 流量,绕过任何防火墙过滤器或访问控制列表。通过绕过防火墙过滤器或访问控制列表,这种类型的隧道允许访问路由器以外的资源。 no-tcp-forwarding 使用选项可阻止用户通过 SSH 创建到路由器的 SSH 隧道。

有关其他配置设置的信息,请参阅以下主题:

通过 SSH 配置 root 登录

默认情况下,当身份验证方法不需要密码时,用户可以通过 SSH 登录路由器或交换机 root 。要通过 SSH 控制用户访问,请将语句 root-login 包含在 [edit systems services ssh] 层次结构级别:

allow- 允许用户通过 SSH 以 root 身份登录路由器或交换机。

deny- 禁止用户通过 SSH 以 root 身份登录路由器或交换机。

deny-password- 当身份验证方法(例如 RSA)不需要密码时,允许用户通过 SSH 以 root 身份登录路由器或交换机。

默认值为 deny-password

配置传入 SFTP 连接

SSH 文件传输协议 (SFTP) 是一种网络协议,可通过任何可靠的数据流提供文件访问、文件传输和文件管理。默认情况下,传入 SFTP 连接处于禁用状态。如果需要,您可以在层次结构级别配置语句sftp-server[edit system services ssh],从而全局启用传入 SFTP 连接。

注意:

默认情况下,仅禁用传入的 SFTP 连接。例如,在给定设备 A 和 B 的情况下,默认情况下,您无法通过 SFTP 从 B 连接到 A。但是,如果您在设备 A 上配置 sftp-server ,则可以通过 SFTP 从设备 B 连接到设备 A。

默认情况下,传入的 SFTP 连接处于禁用状态。要启用传入 SFTP 连接:

  1. sftp-server层次结构级别配置语句[edit system services ssh]
  2. 提交配置。

    语句 sftp-server 现在处于活动状态。因此,传入的 SFTP 连接已启用。

配置 SSH 协议版本

默认情况下,仅启用 SSH 协议的版本 2。

要配置路由器或交换机以使用 SSH 协议的版本 2,请添加语句protocol-version并在层次结构级别指定v2[edit system services ssh]

配置客户端活动机制

当客户端或服务器依赖于知道连接何时变得不活动时,客户端活动机制是有价值的。它不同于标准 keepalive 机制,因为客户端活动消息通过加密通道发送。客户端活动机制默认未启用。要启用它,请 client-alive-count-max 配置 and client-alive-interval 语句。此选项仅适用于 SSH 协议版本 2。

在以下示例中,无响应的 SSH 客户端将在大约 100 秒 (20 x 5) 后断开连接:

配置 SSH 指纹散列算法

要配置 SSH 服务器在显示密钥指纹时使用的散列算法,请添加语句 fingerprint-hash 并指定 md5sha2-256 层级 [edit system services ssh]

配置基于 SSH 证书的身份验证

从 Junos OS 和 Junos OS 演化版 22.4R1 开始,您可以为用户和主机配置基于 SSH 证书的身份验证。借助此功能,您可以为用户设置对具有无密码登录功能的设备的 SSH 访问,并能够在无需验证密钥指纹的情况下信任主机。

要配置基于 SSH 证书的身份验证,请使用以下 CLI 配置语句:

  • [system services ssh trusted-user-ca-key-file filename]—在 /etc/ssh/sshd_config 中配置文件TrustedUserCAKey,其中包含 SSH 证书的公钥。

  • [system services ssh host-certificate-file filename]— 在 /etc/ssh/sshd_config 中配置文件HostCertificate,其中包含已签名的主机证书。

  • [system services ssh authorized-principals-file filename]-在 /var/等中配置AuthorizedPrincipals文件,其中包含一个名称列表,其中一个名称必须出现在证书中,才能接受其身份验证。

  • [system services ssh authorized-principals-command program-path]- 指定要用于生成文件中允许 AuthorizedPrincipals 的证书主体列表的程序。

telnet 命令

您可以使用 CLI telnet 命令向远程设备打开 Telnet 会话:

要退出 Telnet 会话并返回 Telnet 命令提示符,按 Ctrl-]。

要退出 Telnet 会话并返回 CLI 命令提示符,请输入 quit

表 1:CLI telnet 命令选项

选项

描述

8bit

使用 8 位数据路径。

host

打开一个 Telnet 会话,以指定主机名或 IP 地址。

inet

强制将 Telnet 会话连接到 IPv4 目标。

inet6

强制 Telnet 会话到 IPv6 目标。

port port

指定主机上的端口号或服务名称。

routing-instance routing-instance-name

为 Telnet 会话使用指定的路由实例。

ssh 命令

您可以使用 CLI ssh 命令使用安全 shell (SSH) 程序打开与远程设备的连接:

表 2 介绍了 ssh 命令选项。

表 2:CLI ssh 命令选项

选项

描述

bypass-routing

绕过路由表,仅将 SSH 连接打开至直连接口上的主机。如果主机不在直连接口上,将返回错误消息。

host

打开与指定主机名或 IP 地址的 SSH 连接。

inet

强制将 SSH 连接到 IPv4 目标。

inet6

强制将 SSH 连接到 IPv6 目标。

interface source-interface

打开与指定接口上主机的 SSH 连接。如果未包含此选项,则使用所有接口。

routing-instance routing-instance-name

为 SSH 连接使用指定的路由实例。

logical-system

为 SSH 连接使用指定的逻辑系统。

source address

为 SSH 连接使用指定的源地址。

v2

强制 SSH 使用版本 2 进行连接。

配置 SSH 已知主机密钥,实现数据安全复制

安全 Shell (SSH) 使用 加密 算法生成主机、服务器和会话密钥系统,以确保数据传输安全。您可以将 SSH 主机密钥配置为支持安全复制 (SCP) 作为 FTP 的替代方法,用于在后台传输配置存档和事件日志等数据。要为 SCP 配置 SSH 支持,您必须完成以下任务:

  • 通过在路由引擎配置层次结构中包含主机名和主机密钥信息,指定 SSH 已知主机。

  • 设置一个 SCP URL 以指定接收数据的主机。设置此属性会自动从 SCP 服务器检索 SSH 主机密钥信息。

  • 验证主机密钥是否真实。

  • 接受安全连接。接受此连接会自动将主机密钥信息存储在本地主机密钥数据库中。在配置层次结构中存储主机密钥信息可自动进行安全握手,并允许使用 SCP 进行后台数据传输。

配置 SSH 主机密钥以安全复制数据的任务包括:

配置 SSH 已知主机

要配置 SSH 已知主机,请添加语句 host ,并在层次结构级别为可信服务器 [edit security ssh-known-hosts] 指定主机名和主机密钥选项:

主机密钥为以下之一:

  • dsa-key key— Base64 SSH 版本 2 的编码数字签名算法 (DSA) 密钥。

  • ecdsa-sha2-nistp256-keykey-Base64 编码的 ECDSA-SHA2-NIST256 密钥。

  • ecdsa-sha2-nistp384-keykey-Base64 编码的 ECDSA-SHA2-NIST384 密钥。

  • ecdsa-sha2-nistp521-keykey- Base64 编码的 ECDSA-SHA2-NIST521 密钥。

  • ed25519-keykey-Base64 编码的 ED25519 密钥。

  • rsa-key key-Base64 编码公共密钥算法,支持 SSH 版本 1 和 SSH 版本 2 的加密和数字签名。

  • rsa1-key key—Base64 编码 RSA 公共密钥算法,支持 SSH 版本 1 的加密和数字签名。

配置对 SCP 文件传输的支持

要配置已知主机以支持后台 SCP 文件传输,请在 archive-sites 层级添加语句 [edit system archival configuration]

注意:

在使用 IPv6 主机地址在 Junos OS 演化版 语句中指定 URL 时,必须用引号 (“ ”) 将整个 URL 括起来,并将 IPv6 主机地址括在括号 ([ ]) 中。例如 ,“scp://username<:password>@[host]<:port>/url-path”;

archive-sites 语句设置为指向一个 SCP URL 会触发自动主机密钥检索。此时, Junos OS 演化版 会连接到 SCP 主机以获取 SSH 公钥,向控制台显示主机密钥消息摘要或指纹,并终止与服务器的连接。

要验证主机密钥是否真实,请将此指纹与使用可信来源从同一主机获得的指纹进行比较。如果指纹相同,则通过 yes 输入提示符接受主机密钥。然后,主机密钥信息存储在路由引擎配置中,并支持使用 SCP 进行后台数据传输。

更新 SSH 主机密钥信息

通常,当您使用 archival configuration archive-sites 层级的 [edit system] 语句为 SCP 设置 URL 属性时,会自动检索 SSH 主机密钥信息。但是,如果需要手动更新主机密钥数据库,请使用以下方法之一。

手动检索主机密钥信息

要手动检索 SSH 公共主机密钥信息,请在 fetch-from-server 层次结构级别配置选项 [edit security ssh-known-hosts] 。您必须指定从中检索 SSH 公钥的主机。

从文件导入主机密钥信息

要从known_hosts文件中手动导入 SSH 主机密钥信息,请将选项load-key-file[edit security ssh-known-hosts]添加到层次结构级别。您必须指定要从中导入主机密钥信息的文件的路径。

配置 SSH 服务以支持传统加密技术

Junos OS 演化版中的 SSH 服务器基于 OpenSSH 7,默认使用一组更安全的密码和密钥交换算法。OpenSSH 7 省略了一些传统加密技术。

注意:

有关这些扩展的更多信息,请参阅 https://www.openssh.com/ 上的 OpenSSH 7 文档。

Junos OS 演化版 默认支持以下密码集:

  • chacha20-poly1305@openssh.com

  • aes128-ctr

  • aes192-ctr

  • aes256-ctr

  • aes128-gcm@openssh.com

  • aes256-gcm@openssh.com

Junos OS 演化版中,默认情况下不支持以下密码,但您可以将设备配置为支持它们。列出了从最安全到最不安全的名单:

  • aes256-cbc

  • aes192-cbc

  • aes128-cbc

  • blowfish-cbc

  • cast128-cbc

  • arcfour256

  • arcfour128

  • arcfour

Junos OS 演化版 默认支持以下密钥交换方法集:

  • curve25519-sha256

  • ecdh-sha2-nistp256

  • ecdh-sha2-nistp384

  • ecdh-sha2-nistp521

  • group-exchange-sha2

  • dh-group14-sha1

Junos OS 演化版中,默认情况下不支持以下密钥交换方法,但您可以将设备配置为支持它们:

  • group-exchange-sha1

  • dh-group1-sha1

要配置 SSH 服务以支持传统加密技术:

注意:

通过配置一组有序密码、密钥交换方法或消息身份验证代码 (MAC),新定义的集将同时应用于服务器和客户端命令。对默认值的更改会影响 file copy 使用安全复制协议 (SCP) 时的命令。

  1. 使用命令添加对密码的支持set system services ssh ciphers [ cipher 1 cipher 2 ... ]。建议将密码添加到配置列表的末尾,使其成为使用的最后选项之一。在以下示例中arcfour,密码和blowfish-cbc密码将添加到默认设置中:
  2. 使用命令添加对密钥交换方法的支持set system services ssh key-exchange [ method 1 method 2 ... ]。建议将密钥交换方法添加到配置列表的末尾,以便这些方法成为使用的最后选项之一。在以下示例中dh-group1-sha1,密钥交换方法添加到默认设置中:
  3. 提交配置:

配置出站 SSH 服务

您可以配置运行 Junos OS Evolved 的设备,以启动与客户端管理应用程序的 TCP/IP 连接。如果管理应用程序未到达瞻博网络设备,例如,该设备为防火墙。在这种情况下, outbound-ssh 可以在瞻博网络设备上配置。配置 outbound-ssh 会启动从服务器到客户端到管理应用程序的反向 SSH 连接。只有在从设备中移除配置后,此出站 SSH 连接才会关闭。

注意:

没有使用出站 SSH 的初始化命令。配置并提交出站 SSH 后,设备将开始根据提交的配置启动出站 SSH 连接。设备会反复尝试创建此连接,直到成功。如果设备与客户端管理应用程序之间的连接断开,设备将再次尝试创建新的出站 SSH 连接,直到成功。此连接一直保持,直到出站 SSH 节从配置中移除。

要为出站 SSH 连接配置设备,请在 outbound-ssh 层级添加语句 [edit system services]

[edit system services outbound-ssh]

以下主题介绍了配置出站 SSH 服务的任务。

将公共 SSH 主机密钥发送至出站 SSH 客户端

每次路由器或交换机建立出站 SSH 连接时,都会首先向管理客户端发送初始化顺序。此序列标识管理客户端的路由器或交换机。在此传输中,为 。device-id

要配置路由器或交换机的设备标识符,请在 device-id 层级添加语句 [edit system services outbound-ssh client client-id]

未配置时的 secret 初始化顺序:

在 SSH 连接初始化期间,客户端使用设备的公共 SSH 主机密钥验证设备的身份。因此,客户端需要设备的公共 SSH 密钥才能启动 SSH 序列。配置语句 secret 时,设备会将其公共 SSH 密钥作为出站 SSH 连接初始化序列的一部分进行传递。

设置语句 secret 且设备建立出站 SSH 连接时,设备将通信其设备 ID、公共 SSH 密钥以及部分从该 secret 语句派生的 SHA1 散列。语句的值 secret 在设备和管理客户端之间共享。客户端使用共享密钥对接收的公共 SSH 主机密钥进行身份验证,以确定公钥是否来自语句标识的设备 device-id

secret使用语句传输公共 SSH 主机密钥是可选的。您可以手动将公钥传输并安装到客户端系统上。

注意:

包括该 secret 语句意味着设备每次与客户端建立连接时都会发送其公共 SSH 主机密钥。然后,如果客户端已有该设备的 SSH 密钥,则由客户端决定如何使用 SSH 主机密钥。建议将客户端的 SSH 主机密钥副本替换为新密钥。主机密钥可能会因为各种原因而发生变化。每次建立连接时都替换密钥,即可确保客户端具有最新的密钥。

要当设备连接到客户端时发送路由器或交换机的公共 SSH 主机密钥,请在层次结构级别包括以下 secret 语句 [edit system services outbound-ssh client client-id]

配置属性时 secret ,设备会发送以下消息:

为出站 SSH 连接配置 Keepalive 消息

在客户端应用具有路由器或交换机的公共 SSH 主机密钥之后,就可以启动 SSH 序列,就像创建了 TCP/IP 连接一样。然后,客户端可以使用路由器或交换机公共主机 SSH 密钥的副本来验证设备。设备通过 Junos OS 演化 版(RSA/DSA 公共字符串或密码身份验证)中支持的机制对客户端用户进行身份验证。

要使设备能够向客户端应用发送 SSH 协议激活消息,请在层次结构级别配置语句keep-alive[edit system services outbound-ssh client client-id]

配置新的出站 SSH 连接

断开连接后,设备将开始启动新的出站 SSH 连接。要指定断开连接后设备如何重新连接到服务器,请在层次结构级别添加语句reconnect-strategy[edit system services outbound-ssh client client-id]

您还可以指定重试尝试的次数,并设置重新连接尝试停止前的时间量。请参阅 为出站 SSH 连接配置 Keepalive 消息

将出站 SSH 客户端配置为接受 NETCONF 作为可用服务

要配置应用程序以接受 NETCONF 作为可用服务,请在 services netconf 层次结构级别添加语句 [edit system services outbound-ssh client client-id]

配置出站 SSH 客户端

要配置可用于此出站 SSH 连接的客户端,请在层次结构级别使用单独地址语句 [edit system services outbound-ssh client client-id] 列出每个客户端:

注意:

出站 SSH 连接支持 IPv4 和 IPv6 地址格式。

为出站 SSH 客户端配置路由实例

要使用管理路由实例,请首先使用set system management-instance命令启用mgmt_junos路由实例。

要使用任何其他路由实例,请首先在层次结构中 [edit routing-instances] 配置路由实例。

如果未指定路由实例,您的设备将使用默认路由表建立出站 SSH 连接。

在指定的 TCP 端口上配置 NETCONF-over-SSH 连接

Junos OS 演化版 允许您将传入 NETCONF 连接限制到指定的 TCP 端口,而无需配置防火墙。要配置用于 NETCONF-over-SSH 连接的 TCP 端口,请在 port 层级添加语句 [edit system services netconf ssh] 。配置的端口仅接受 NETCONF-over-SSH 会话。此端口的常规 SSH 会话请求将被拒绝。

您可以按照 RFC 4742 使用通过安全 Shell 的 NETCONF 配置协议 (SSH) 中规定的通过 SSH 为 NETCONF 连接配置默认端口 830,或者配置 1 到 65535 之间的任意端口。

注意:
  • 即使配置了 NETCONF 服务器端口,默认 SSH 端口 (22) 继续接受 NETCONF 会话。要禁用 SSH 端口接受 NETCONF 会话,请在登录事件脚本中指定这一点。

  • 我们不建议为 FTP (21) 和 Telnet (23) 服务配置默认端口来配置 NETCONF-over-SSH 连接。