Console Port Telnet and SSH Handling

This chapter covers the following topics:

Important Notes and Restrictions

  • The Telnet and SSH settings made in the transport map override any other Telnet or SSH settings when the transport map is applied to the Management Ethernet interface.
  • Only local usernames and passwords can be used to authenticate users entering a Management Ethernet interface. AAA authentication is not available for users accessing the router through a Management Ethernet interface using persistent Telnet or persistent SSH.
  • Applying a transport map to a Management Ethernet interface with active Telnet or SSH sessions can disconnect the active sessions. Removing a transport map from an interface, however, does not disconnect any active Telnet or SSH sessions.
  • Configuring the diagnostic and wait banners i s optional but recommended. The banners are especially useful as indicators to users of the status of their Telnet or SSH attempts.

Console Port Overview

The console port on the chassis is an EIA/TIA-232 asynchronous, serial connection with no flow control and an RJ-45 connector. The console port is used to access the chassis and is located on the front panel of the Route Switch Processor (RSP).

For information on accessing the chassis using the console port, see the “Accessing the CLI Using a Console” section on page 1-4 .

Connecting Console Cables

For information about connecting console cables to the chassis, see the NCS 4200 Hardware Installation Guides.

Installing USB Device Drivers

For instructions on how to install device drivers in order to use the USB console port, see the NCS 4200 Hardware Installation Guides.

Console Port Handling Overview

Users using the console port to access the chassis are automatically directed to the IOS command-line interface, by default.

If a user is trying to access the router through the console port and sends a break signal (a break signal can be sent by entering Ctrl-C or Ctrl-Shift-6 , or by entering the send break command at the Telnet prompt ) before connecting to the IOS command-line interface, the user is directed into diagnostic mode by default if the non-RPIOS sub-packages can be accessed.

These settings can be changed by configuring a transport map for the console port and applying that transport map to the console interface.

Telnet and SSH Overview

Telnet and Secure Shell (SSH) can be configured and handled like Telnet and SSH on other Cisco platforms. For information on traditional Telnet, see the line command in the Cisco IOS Terminal Services Command Reference guide located at http://www.cisco.com/en/US/docs/ios/12_2/termserv/command/reference/trflosho.html#wp1029818.

For information on configuring traditional SSH, see the Secure Shell Configuration Guide, Cisco IOS XE Release 3S

The chassis also supports persistent Telnet and persistent SSH. Persistent Telnet and persistent SSH allow network administrators to more clearly define the treatment of incoming traffic when users access the router through the Management Ethernet port using Telnet or SSH. Notably, persistent Telnet and persistent SSH provide more robust network access by allowing the router to be configured to be accessible through the Ethernet Management port using Telnet or SSH even when the IOS process has failed.

Persistent Telnet and Persistent SSH Overview

In traditional Cisco routers, accessing the router using Telnet or SSH is not possible in the event of an IOS failure. When Cisco IOS fails on a traditional Cisco router, the only method of accessing the router is through the console port. Similarly, if all active IOS processes have failed on a chassis that is not using persistent Telnet or persistent SSH, the only method of accessing the router is through the console port.

With persistent Telnet and persistent SSH, however, users can configure a transport map that defines the treatment of incoming Telnet or SSH traffic on the Management Ethernet interface. Among the many configuration options, a transport map can be configured to direct all traffic to the IOS command-line interface, diagnostic mode, or to wait for an IOS vty line to become available and then direct users into diagnostic mode when the user sends a break signal while waiting for the IOS vty line to become available. If a user uses Telnet or SSH to access diagnostic mode, that Telnet or SSH connection will be usable even in scenarios when no IOS process is active. Therefore, persistent Telnet and persistent SSH introduce the ability to access the router via diagnostic mode when the IOS process is not active. For information on diagnostic mode, see the “Understanding Diagnostic Mode” section on page 1-3 .

For more information on the various other options that are configurable using persistent Telnet or persistent SSH transport map see the Configuring Persistent Telnet and the Configuring Persistent SSH .

Configuring a Console Port Transport Map

This task describes how to configure a transport map for a console port interface.

Procedure

  Command or Action Purpose
Step 1

enable

Example:


Router> enable

Enables privileged EXEC mode.

  • Enter your password if prompted.
Step 2

configure terminal

Example:


Router# configure terminal

Enters global configuration mode.

Step 3

transport-map type console transport-map-name

Example:


Router(config)# transport-map type console consolehandler

Creates and names a transport map for handling console connections, and enter transport map configuration mode.

Step 4

connection wait [allow interruptible | none ]

Example:


Router(config-tmap)# connection wait none

Example:


Specifies how a console connection will be handled using this transport map:

  • allow interruptible —The console connection waits for an IOS vty line to become available, and also allows user to enter diagnostic mode by interrupting a console connection waiting for the IOS vty line to become available. This is the default setting.
Note 
Users can interrupt a waiting connection by entering Ctrl-C or Ctrl-Shift-6 .
  • none —The console connection immediately enters diagnostic mode.
Step 5

banner [diagnostic | wait ] banner-message

Example:


Router(config-tmap)# banner diagnostic X

Example:


Enter TEXT message.  End with the character 'X'.

Example:


--Welcome to Diagnostic Mode--

Example:


X

Example:


Router(config-tmap)#

Example:


(Optional) Creates a banner message that will be seen by users entering diagnostic mode or waiting for the IOS vty line as a result of the console transport map configuration.

  • diagnostic —Creates a banner message seen by users directed into diagnostic mode as a result of the console transport map configuration.
  • wait —Creates a banner message seen by users waiting for the IOS vty to become available.
  • banner-message —The banner message, which begins and ends with the same delimiting character.
Step 6

exit

Example:


Router(config-tmap)# exit

Exits transport map configuration mode to re-enter global configuration mode.

Step 7

transport type console console-line-number input transport-map-name

Example:


Router(config)# transport type console 0 input consolehandler

Applies the settings defined in the transport map to the console interface.

The transport-map-name for this command must match the transport-map-name defined in the transport-map type console comm and.

Examples

In the following example, a transport map to set console port access policies is created and attached to console port 0:


Router(config)# transport-map type console consolehandler
Router(config-tmap)# connection wait allow interruptible
Router(config-tmap)# banner diagnostic X
Enter TEXT message.  End with the character 'X'.
Welcome to diagnostic mode
X
Router(config-tmap)# banner wait X  
Enter TEXT message.  End with the character 'X'.
Waiting for IOS vty line
X
Router(config-tmap)# exit
Router(config)# transport type console 0 input consolehandler

Configuring Persistent Telnet

Before you begin

For a persistent Telnet connection to access an IOS vty line on the chassis, local login authentication must be configured for the vty line (the login command in line configuration mode). If local login authentication is not configured, users will not be able to access IOS using a Telnet connection into the Management Ethernet interface with an applied transport map. Diagnostic mode will still be accessible in this scenario.

Procedure

  Command or Action Purpose
Step 1

enable

Example:


Router> enable

Enables privileged EXEC mode.

  • Enter your password if prompted.
Step 2

configure terminal

Example:


Router# configure terminal

Enters global configuration mode.

Step 3

transport-map type persistent telnet transport-map-name

Example:


Router(config)# transport-map type persistent telnet telnethandler

Creates and names a transport map for handling persistent Telnet connections, and enters transport map configuration mode.

Step 4

connection wait [allow {interruptible }| none {disconnect }]

Example:


Router(config-tmap)# connection wait none

Example:


Specifies how a persistent Telnet connection will be handled using this transport map:

  • allow —The Telnet connection waits for an IOS vty line to become available, and exits the router if interrupted.
  • allow interruptible —The Telnet connection waits for the IOS vty line to become available, and also allows user to enter diagnostic mode by interrupting a Telnet connection waiting for the IOS vty line to become available. This is the default setting.
Note 
Users can interrupt a waiting connection by entering Ctrl-C or Ctrl-Shift-6 .
  • none —The Telnet connection immediately enters diagnostic mode.
  • none disconnect —The Telnet connection does not wait for the IOS vty line and does not enter diagnostic mode, so all Telnet connections are rejected if no vty line is immediately available in IOS.
Step 5

banner [diagnostic | wait ] banner-message

Example:


Router(config-tmap)# banner diagnostic X

Example:


Enter TEXT message.  End with the character 'X'.

Example:


--Welcome to Diagnostic Mode--

Example:


X

Example:


Router(config-tmap)#

Example:


(Optional) Creates a banner message that will be seen by users entering diagnostic mode or waiting for the IOS vty line as a result of the persistent Telnet configuration.

  • diagnostic —creates a banner message seen by users directed into diagnostic mode as a result of the persistent Telnet configuration.
  • wait —creates a banner message seen by users waiting for the vty line to become available.
  • banner-message —the banner message, which begins and ends with the same delimiting character.
Step 6

transport interface type num

Example:


Router(config-tmap)# transport interface gigabitethernet 0

Applies the transport map settings to the Management Ethernet interface (interface gigabitethernet 0).

Persistent Telnet can only be applied to the Management Ethernet interface on the chassis. This step must be taken before applying the transport map to the Management Ethernet interface.

Step 7

exit

Example:


Router(config-tmap)# exit

Exits transport map configuration mode to re-enter global configuration mode.

Step 8

transport type persistent telnet input transport-map-name

Example:


Router(config)# transport type persistent telnet input telnethandler

Applies the settings defined in the transport map to the Management Ethernet interface.

The transport-map-name for this command must match the transport-map-name defined in the transport-map type persistent telnet comm and.

Examples

In the following example, a transport map that will make all Telnet connections wait for an IOS vty line to become available before connecting to the router, while also allowing the user to interrupt the process and enter diagnostic mode, is configured and applied to the Management Ethernet interface (interface gigabitethernet 0).

A diagnostic and a wait banner are also configured.

The transport map is then applied to the interface when the transport type persistent telnet input command is entered to enable persistent Telnet.


Router(config)# transport-map type persistent telnet telnethandler
Router(config-tmap)# 
connection wait allow interruptible
Router(config-tmap)# banner diagnostic X
Enter TEXT message.  End with the character 'X'.
--Welcome to Diagnostic Mode--
X
Router(config-tmap)# banner wait X
Enter TEXT message.  End with the character 'X'.
--Waiting for IOS Process--
X
Router(config-tmap)# transport interface gigabitethernet 0
Router(config-tmap)# exit
Router(config)# transport type persistent telnet input telnethandler

Configuring Persistent SSH

This task describes how to configure persistent SSH.

Procedure

  Command or Action Purpose
Step 1

enable

Example:


Router> enable

Enables privileged EXEC mode.

  • Enter your password if prompted.
Step 2

configure terminal

Example:


Router# configure terminal

Enters global configuration mode.

Step 3

transport-map type persistent ssh transport-map-name

Example:


Router(config)# transport-map type persistent ssh sshhandler

Creates and names a transport map for handling persistent SSH connections, and enters transport map configuration mode.

Step 4

connection wait [allow {interruptible }| none {disconnect }]

Example:


Router(config-tmap)# connection wait allow interruptible

Example:


Specifies how a persistent SSH connection will be handled using this transport map:

  • allow —The SSH connection waits for the vty line to become available, and exits the router if interrupted.
  • allow interruptible —The SSH connection waits for the vty line to become available, and also allows users to enter diagnostic mode by interrupting a SSH connection waiting for the vty line to become available. This is the default setting.
Note 
Users can interrupt a waiting connection by entering Ctrl-C or Ctrl-Shift-6 .
  • none —The SSH connection immediately enters diagnostic mode.
  • none disconnect —The SSH connection does not wait for the vty line from IOS and does not enter diagnostic mode, so all SSH connections are rejected if no vty line is immediately available.
Step 5

rsa keypair-name rsa-keypair-name

Example:


Router(config-tmap)# rsa keypair-name sshkeys

Names the RSA keypair to be used for persistent SSH connections.

For persistent SSH connections, the RSA keypair name must be defined using this command in transport map configuration mode. The RSA keypair definitions defined elsewhere on the router, such as through the use of the ip ssh rsa keypair-name command, do not apply to persistent SSH connections.

No rsa-keypair-name is defined by default.

Step 6

authentication-retries number-of-retries

Example:


Router(config-tmap)# authentication-retries 4

(Optional) Specifies the number of authentication retries before dropping the connection.

The default number-of-retries is 3.

Step 7

banner [diagnostic | wait ] banner-message

Example:


Router(config-tmap)# banner diagnostic X

Example:


Enter TEXT message.  End with the character 'X'.

Example:


--Welcome to Diagnostic Mode--

Example:


X

Example:


Router(config-tmap)#

(Optional) Creates a banner message that will be seen by users entering diagnostic mode or waiting for the vty line as a result of the persistent SSH configuration.

  • diagnostic —Creates a banner message seen by users directed into diagnostic mode as a result of the persistent SSH configuration.
  • wait —Creates a banner message seen by users waiting for the vty line to become active.
  • banner-message —The banner message, which begins and ends with the same delimiting character.
Step 8

time-out timeout-interval

Example:


Router(config-tmap)# time-out 30

(Optional) Specifies the SSH time-out interval in seconds.

The default timeout-interval is 120 seconds.

Step 9

transport interface type num

Example:


Router(config-tmap)# transport interface gigabitethernet 0

Applies the transport map settings to the Management Ethernet interface (interface gigabitethernet 0).

Persistent SSH can only be applied to the Management Ethernet interface on the chassis.

Step 10

exit

Example:


Router(config-tmap)# exit

Exits transport map configuration mode to re-enter global configuration mode.

Step 11

transport type persistent ssh input transport-map-name

Example:


Router(config)# transport type persistent ssh input sshhandler

Applies the settings defined in the transport map to the Management Ethernet interface.

The transport-map-name for this command must match the transport-map-name defined in the transport-map type persistent ssh command .

Examples

In the following example, a transport map that will make all SSH connections wait for the vty line to become active before connecting to the router is configured and applied to the Management Ethernet interface (interface gigabitethernet 0). The RSA keypair is named sshkeys.

This example only uses the commands required to configure persistent SSH.


Router(config)# transport-map type persistent ssh sshhandler
Router(config-tmap)# connection wait allow
Router(config-tmap)# rsa keypair-name sshkeys
Router(config-tmap)# transport interface gigabitethernet 0

In the following example, a transport map is configured that will apply the following settings to any users attempting to access the Management Ethernet port via SSH:

  • Users using SSH will wait for the vty line to become active, but will enter diagnostic mode if the attempt to access IOS through the vty line is interrupted.
  • The RSA keypair name is “sshkeys”
  • The connection allows one authentication retry.
  • The banner “--Welcome to Diagnostic Mode--” will appear if diagnostic mode is entered as a result of SSH handling through this transport map.
  • The banner “--Waiting for vty line--” will appear if the connection is waiting for the vty line to become active.

The transport map is then applied to the interface when the transport type persistent ssh input command is entered to enable persistent SSH.


Router(config)# transport-map type persistent ssh sshhandler
Router(config-tmap)# connection wait allow interruptible
Router(config-tmap)# rsa keypair-name sshkeys
Router(config-tmap)# authentication-retries 1

Router(config-tmap)# banner diagnostic X

Enter TEXT message.  End with the character 'X'.

--Welcome to Diagnostic Mode--

X

Router(config-tmap)#banner wait X
Enter TEXT message.  End with the character 'X'.
--Waiting for vty line--
X
Router(config-tmap)# 
time-out 30
Router(config-tmap)# transport interface gigabitethernet 0
Router(config-tmap)# exit
Router(config)# transport type persistent ssh input sshhandler

Viewing Console Port, SSH, and Telnet Handling Configurations

Use the show transport-map all name transport-map-name | type console persistent ssh telnet ]]] EXEC or privileged EXEC command to view the transport map configurations.

In the following example, a console port, persistent SSH, and persistent Telnet transport are configured on the router and various forms of the show transport-map command are entered to illustrate the various ways the show transport-map command can be entered to gather transport map configuration information.


Router# show transport-map all
Transport Map:
  Name: consolehandler
  Type: Console Transport
Connection:
  Wait option: Wait Allow Interruptable
  Wait banner: 
Waiting for the IOS CLI
  bshell banner: 
Welcome to Diagnostic Mode
Transport Map:
  Name: sshhandler
  Type: Persistent SSH Transport
Interface:
  GigabitEthernet0
Connection:
  Wait option: Wait Allow Interruptable
  Wait banner: 
Waiting for IOS prompt
  Bshell banner: 
          
Welcome to Diagnostic Mode
SSH:
  Timeout: 120
  Authentication retries: 5
  RSA keypair: sshkeys
Transport Map:
  Name: telnethandler
  Type: Persistent Telnet Transport
Interface:
  GigabitEthernet0
Connection:
  Wait option: Wait Allow Interruptable
  Wait banner: 
Waiting for IOS process
  Bshell banner: 
Welcome to Diagnostic Mode
Transport Map:
  Name: telnethandling1
  Type: Persistent Telnet Transport
Connection:
  Wait option: Wait Allow
Router# show transport-map type console
Transport Map:
  Name: consolehandler
  Type: Console Transport
Connection:
  Wait option: Wait Allow Interruptable
  Wait banner: 
Waiting for the IOS CLI
  Bshell banner: 
Welcome to Diagnostic Mode
Router# show transport-map type persistent ssh
Transport Map:
  Name: sshhandler
  Type: Persistent SSH Transport
Interface:
  GigabitEthernet0
Connection:
  Wait option: Wait Allow Interruptable
  Wait banner: 
Waiting for IOS prompt
  Bshell banner: 
Welcome to Diagnostic Mode
SSH:
  Timeout: 120
  Authentication retries: 5
  RSA keypair: sshkeys
Router# show transport-map type persistent telnet
 
Transport Map:
  Name: telnethandler
  Type: Persistent Telnet Transport
Interface:
  GigabitEthernet0
Connection:
  Wait option: Wait Allow Interruptable
  Wait banner: 
Waiting for IOS process
  Bshell banner: 
Welcome to Diagnostic Mode
Transport Map:
  Name: telnethandling1
  Type: Persistent Telnet Transport
Connection:
  Wait option: Wait Allow
Router# show transport-map name telnethandler 
Transport Map:
  Name: telnethandler
  Type: Persistent Telnet Transport
Interface:
  GigabitEthernet0
Connection:
  Wait option: Wait Allow Interruptable
  Wait banner: 
Waiting for IOS process
  Bshell banner: 
Welcome to Diagnostic Mode
Router# show transport-map name consolehandler
Transport Map:
  Name: consolehandler
  Type: Console Transport
Connection:
  Wait option: Wait Allow Interruptable
  Wait banner: 
Waiting for the IOS CLI
  Bshell banner: 
Welcome to Diagnostic Mode
Router# show transport-map name sshhandler
Transport Map:
  Name: sshhandler
  Type: Persistent SSH Transport
Interface:
  GigabitEthernet0
Connection:
  Wait option: Wait Allow Interruptable
  Wait banner: 
Waiting for IOS prompt
  Bshell banner: 
Welcome to Diagnostic Mode
SSH:
  Timeout: 120
  Authentication retries: 5
  RSA keypair: sshkeys
Router#

The show platform software configuration access policy command can be used to view the current configurations for the handling of incoming console port, SSH, and Telnet connections. The output of this command provides the current wait policy for each type of connection, as well as any information on the currently configured banners. Unlike show transport-map , this command is available in diagnostic mode so it can be entered in cases when you need transport map configuration information but cannot access the IOS CLI.


Router# show platform software configuration access policy 
The current access-policies
Method      : telnet
Rule        : wait
Shell banner: 
Wait banner : 
Method      : ssh
Rule        : wait
Shell banner: 
Wait banner : 
Method      : console
Rule        : wait with interrupt
Shell banner: 
Wait banner : 

In the following example, the connection policy and banners are set for a persistent SSH transport map, and the transport map is enabled.

The show platform software configuration access policy output is given both before the new transport map is enabled and after the transport map is enabled so the changes to the SSH configuration are illustrated in the output.


Router# show platform software configuration access policy
 
The current access-policies
Method      : telnet
Rule        : wait with interrupt
Shell banner: 
Welcome to Diagnostic Mode
Wait banner : 
Waiting for IOS Process
Method      : ssh
Rule        : wait
Shell banner: 
Wait banner : 
Method      : console
Rule        : wait with interrupt
Shell banner: 
Wait banner : 
Router# configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)# transport-map type persistent ssh sshhandler
Router(config-tmap)# connection wait allow interruptible
Router(config-tmap)# banner diagnostic X
Enter TEXT message.  End with the character 'X'.
Welcome to Diag Mode
X
Router(config-tmap)# banner wait X
Enter TEXT message.  End with the character 'X'.
Waiting for IOS
X
Router(config-tmap)# rsa keypair-name sshkeys
Router(config-tmap)# transport interface gigabitethernet 0
Router(config-tmap)# exit
Router(config)# transport type persistent ssh input sshhandler 
Router(config)# exit
Router# show platform software configuration access policy
The current access-policies
Method      : telnet
Rule        : wait with interrupt
Shell banner: 
Welcome to Diagnostic Mode
Wait banner : 
Waiting for IOS process
Method      : ssh
Rule        : wait with interrupt
Shell banner: 
Welcome to Diag Mode
Wait banner : 
Waiting for IOS
Method      : console
Rule        : wait with interrupt
Shell banner: 
Wait banner :