System Security Configuration Guide for Cisco 8000 Series Routers, IOS XR Releases

PDF

System Security Configuration Guide for Cisco 8000 Series Routers, IOS XR Releases

CiscoSSH

Want to summarize with AI?

Log in

Explains the OpenSSH-based Cisco implementation, including post-quantum key exchange, implementation differences, restrictions, operating recommendations, and session-event messages for secure router management.


CiscoSSH is an OpenSSH-based secure-shell implementation that

  • uses the Linux TCP/IP stack on management Ethernet and line-card interfaces

  • supports FIPS operation, X.509 certificates, MPP, ACLs, and VRFs, and

  • preserves most Cisco IOS XR SSH commands while adding OpenSSH security and interoperability.

CiscoSSH replaces the older Cisco IOS XR SSH implementation beginning with Cisco IOS XR Software Release 7.3.2.

Table 1. Feature History Table
Feature Name Release Information Feature Description
CiscoSSH Release 7.3.2

This release introduces CiscoSSH, a newer implementation of SSH on this platform.

CiscoSSH leverages OpenSSH implementation, by using the Linux TCP/IP stack to transmit and receive SSH packets over the management Ethernet interface and line card interfaces on the router. CiscoSSH provides additional security features like FIPS compliance and X.509 digital certification. It supports packet path features like MPP, ACL and VRF support, and ensures interoperability with various existing SSH implementations.

Note

Cisco IOS XR SSH, the SSH implementation that existed prior to this release, is now deprecated.


Post-quantum cryptography key exchange for CiscoSSH

Post-Quantum Cryptography (PQC) key exchange for CiscoSSH is a hybrid security capability that

  • combines a post-quantum algorithm with the classical X25519 key exchange

  • mitigates long-term quantum risks to remote-access and data-transfer confidentiality and integrity, and

  • is enabled by default beginning with Cisco IOS XR Software Release 26.2.1.

CiscoSSH supports hybrid algorithms based on ML-KEM and Streamlined NTRU Prime.

Table 2. Feature History Table
Feature Name Release Information Feature Description
Post-Quantum Cryptography key exchange for CiscoSSH Release 26.2.1

Introduced in this release on: Fixed Systems (8200 [ASIC: Q200, P100], 8700 [ASIC: P100, K100], 8010 [ASIC: A100]); Centralized Systems (8600 [ASIC:Q200]) ; Modular Systems (8800 [LC ASIC: Q100, Q200, P100])

CiscoSSH mitigates quantum threats to ensure long term confidentiality and integrity of remote access and data transfer by introducing PQC (Post-Quantum Cryptography) hybrid key exchange algorithms.

Supported algorithms include ML-KEM and NTRU Prime hybrids:

  • mlkem768x25519-sha256

  • sntrup761x25519-sha512

  • sntrup761x25519-sha512@openssh.com

Post-Quantum Cryptography key exchange for CiscoSSH Release 26.2.1

Introduced in this release on: Fixed Systems (8200 [ASIC: Q100, Q200, P100], 8700 [ASIC: P100, K100], 8010 [ASIC: A100]); Centralized Systems (8600 [ASIC:Q200]) ; Modular Systems (8800 [LC ASIC: Q100, Q200, P100])

CiscoSSH mitigates quantum threats to ensure long term confidentiality and integrity of remote access and data transfer by introducing PQC (Post-Quantum Cryptography) hybrid key exchange algorithms.

Supported algorithms include ML-KEM and NTRU Prime hybrids:

  • mlkem768x25519-sha256

  • sntrup761x25519-sha512

  • sntrup761x25519-sha512@openssh.com

Supported PQC algorithms

Use this table to select a supported PQC hybrid key exchange algorithm.

Table 3. Supported PQC algorithms

Algorithm

Description

mlkem768x25519-sha256

Combines NIST-standardized ML-KEM with the classical X25519 elliptic-curve Diffie-Hellman exchange.

sntrup761x25519-sha512

Combines Streamlined NTRU Prime with the classical X25519 elliptic-curve Diffie-Hellman exchange.

sntrup761x25519-sha512@openssh.com

Provides the older OpenSSH-style name for compatibility with peers that expect that identifier.

PQC algorithm configuration

Configure server and client key exchange lists with the ssh server algorithms key-exchange and ssh client algorithms key-exchange commands.


CiscoSSH and Cisco IOS XR SSH differences

Use this comparison when migrating from Cisco IOS XR SSH to CiscoSSH.

Table 4. SSH implementation differences

Function

CiscoSSH

Cisco IOS XR SSH

NETCONF ports

Uses port 830 or SSH port 22; an explicit port can also be configured.

Supports an explicitly configured NETCONF port.

Username syntax

Does not authenticate usernames that contain a colon because the colon is a delimiter.

Does not impose this colon restriction.

Unsupported algorithms

Cannot enable unsupported algorithms.

Can explicitly enable supported legacy options with the ssh server enable cipher command.

Unreachable-host timeout

120 seconds

60 seconds

Authentication timeout

Applies the configured value to the total allowed login attempts.

Applies the value to each login attempt.

Time-based rekey

Triggers when a packet arrives after timer expiration.

Triggers immediately after timer expiration.

Port-forwarded channels

Does not state a channel limit, but show ssh displays no more than 16 entries.

Supports a maximum of 16 channels.

LPTS policer rate for port-forwarded SSH sessions

When using SSH port forwarding feature, the router considers the traffic flows corresponding to port-forwarded SSH sessions as third party applications. Hence, the LPTS polices those traffic flows at a medium rate. The LPTS polices the traffic flows corresponding to port-forwarded SSH sessions at a high rate.
File transfer through SCP

The router checks for the presence of system files after authentication.

The router checks for the presence of system files before authentication.

Noninteractive SFTP initiated by the router

Transfers from an external device to the router only.

Transfers in both directions.


Restrictions for CiscoSSH

Use only supported CiscoSSH versions, interfaces, algorithms, and commands.

  • Do not use SSHv1 or configure a backup SSH server.

  • Do not use the standby management Ethernet interface before Release 24.2.1.

  • Do not use secondary IPv4 addresses or BVI interfaces for SSH before Release 7.7.1.

  • Do not configure AES-CBC, 3DES-CBC, or diffie-hellman-group1-sha1 for CiscoSSH.

  • Do not use these unsupported commands:

    • show ssh history

    • show ssh history details

    • clear ssh stale sessions

  • For Cisco IOS XR Software releases earlier than 25.1.1, configure ingress ACLs in SSH server configuration mode. Ingress ACLs on the management interface do not filter SSH or NETCONF traffic in these releases.


Recommendations for using CiscoSSH

Connection and authentication behavior

Account for CiscoSSH connection syntax and authentication behavior when you configure clients and access controls.

  • Place the NETCONF or SFTP subsystem name last when you send a subsystem request from an SSH client.

    ssh username@ipaddress -p 830 -s netconf    Correct usage
    ssh username@ipaddress netconf -p 830 -s    Incorrect usage
  • Expect a disallowed SSH client connection to time out when an ACL or MPP policy blocks it. The router does not send a TCP reset for the blocked connection.

  • If the router has no imported public key, CiscoSSH still negotiates public-key authentication. The public-key attempt fails and generates a console syslog, after which the client and server continue with keyboard-interactive or password authentication. Disable public-key authentication on the client when it is not required.

  • For Go SSH-based clients, use the option that ignores the window size when you initiate a connection. Adding a line-feed option can prevent session establishment because the client expects a nonzero window size while CiscoSSH sends a window size of 0.

Algorithm and upgrade preparation

Remove unsupported algorithm configurations and recalculate session limits when you migrate from Cisco IOS XR SSH to CiscoSSH. CiscoSSH rejects unsupported algorithm-only configurations and applies session and rate limits differently from Cisco IOS XR SSH.

  • Remove configurations that contain only unsupported algorithms, such as 3des-cbc or diffie-hellman-group1-sha1, before an upgrade. A configuration that contains only unsupported algorithms fails to commit.

    Router(config)# ssh server algorithms cipher 3des-cbc
    
    !!% Operation not permitted: 3des-cbc is not supported in CiscoSSH; SSH cannot operate with only this option.
  • If a cipher list contains supported and unsupported algorithms, the router issues a warning and removes the unsupported algorithms.

    Router(config)# ssh server algorithms cipher aes128-ctr aes192-ctr 3des-cbc
    
    ssh_conf_proxy[1193]: %SECURITY-SSHD_CONF_PRX-3-ERR_GENERAL: 3des-cbc is not supported and will be removed
  • Reconfigure the SSH session and rate limits after an upgrade from Cisco IOS XR SSH. The configuration applies to every enabled VRF, and CiscoSSH enforces each limit per VRF. The maximum number of VTY sessions remains 200 across all VRFs.

VRF and ingress filtering

Configure VRFs and ingress filtering according to the Cisco IOS XR Software release and the required SSH or NETCONF traffic path.

  • Configure ingress ACLs in SSH server configuration mode to filter SSH and NETCONF traffic.

    Use this syntax for SSH:

    ssh server vrf vrf-name ipv4 access-list ipv4-access-list-name ipv6 access-list ipv6-access-list-name

    Use this syntax for NETCONF:

    ssh server netconf vrf vrf-name ipv4 access-list ipv4-access-list-name ipv6 access-list ipv6-access-list-name
  • Beginning with Cisco IOS XR Software Release 25.1.1, use ssh server packet-flow-netio ingress in XR Config mode when ingress ACLs remain on the management interface. This configuration can reduce SCP and SFTP performance.

  • Use ssh vrf default only for SSHv2. CiscoSSH does not support SSHv1 on the default VRF.

  • After restarting ssh_conf_proxy, expect a delay before a nondefault VRF accepts incoming SSH sessions. Session establishment can time out while the router programs the required LPTS entries.

Session and process behavior

Plan operational procedures around CiscoSSH session state and Linux process behavior.

  • Account for the default keepalive interval of 60 seconds and the maximum of three attempts. CiscoSSH detects an unresponsive session after 180 seconds. These parameters are not configurable.

  • Do not rely on the configured TCP window-scale value for CiscoSSH. The router accepts the configuration, but Linux TCP uses dynamic window scaling and ignores the application setting.

  • After an SSH server process restart, session-limit enforcement does not count sessions that existed before the restart because the active-session count is not persistent.

  • Expect any SSH configuration change to restart the SSH server process. Existing SSH, SCP, SFTP, and NETCONF sessions remain active.

  • Use clear ssh all to clear all incoming SSH sessions.

  • After restarting xlncd or ip_smiap, allow time for the router to restore virtual IP addresses.

  • Restart the Linux CiscoSSH server process with the kill command in the Linux shell. The process restart ssh_server command cannot restart this process.

  • Restart ssh_conf_proxy and ssh_syslog_proxy with the process restart command. These processes handle SSH configuration and syslog messages.

  • Do not expect an XR-TCP process restart to affect CiscoSSH because CiscoSSH uses Linux TCP.

Routing, verification, and debugging

Account for Linux route selection, command timeouts under stress, and SSH server restarts caused by debug-level changes.

  • Do not expect Linux to use a route that is more specific than a connected route in the XR routing table.

    XR routing table:
    
    10.0.0.0/24   via 10.0.0.2 (connected route)
    10.0.0.192/28 via 198.51.100.1 (static route)

    This table shows the expected next-hop behavior:

    Table 5. Expected behavior of more-specific routes with CiscoSSH

    Destination IP range

    Cisco IOS XR OS next hop

    Linux next hop

    Match

    10.0.0.1–10.0.0.191

    10.0.0.2

    10.0.0.2

    Yes

    10.0.0.193–10.0.0.206

    198.51.100.1

    10.0.0.2

    No

    10.0.0.207–10.0.0.255

    10.0.0.2

    10.0.0.2

    Yes

  • During a router stress test, retry show ssh , show ssh session details , or show ssh rekey if the command times out.

    Error: Timed out to obtain information about one or more incoming/outgoing sessions. Please retry.
  • Use debug ssh server l1/l2/l3 for three server debug levels and debug ssh client l1/l2/l3 for client debugging.

  • Expect the SSH server process to restart whenever you enable or disable debugging. A debug-level change updates LOGLEVEL in the internal sshd_config file.


CiscoSSH session event messages

Use these message identifiers to correlate SSH session events with the active implementation.

Table 6. SSH session event identifiers

Event

CiscoSSH indication

Cisco IOS XR SSH indication

Login

SSHD_SYSLOG_PRX reports accepted authentication and session start.

SSHD reports successful authentication.

Logout

SSHD_SYSLOG_PRX reports the disconnect and user.

SSHD reports that the user logged out from the VTY.

Login failure

SSHD_SYSLOG_PRX reports failed authentication.

SSHD reports the failed user authentication attempt.

Rekey

SSHD_SYSLOG_PRX reports a server-initiated time rekey.

SSHD emits an INFO_REKEY message.