Table Of Contents
Secure Shell Version 2 Support
Prerequisites for Secure Shell Version 2 Support
Restrictions for Secure Shell Version 2 Support
Information About Secure Shell Version 2 Support
How to Configure Secure Shell Version 2 Support
Configuring a Router for SSH Version 2 Using a Host Name and Domain Name
Configuring a Router for SSH Version 2 Using RSA Key Pairs
Starting an Encrypted Session with a Remote Device
Verifying the Status of the Secure Shell Connection Using the show ssh Command
Verifying the Secure Shell Status Using the show ip ssh Command
Monitoring and Maintaining Secure Shell Version 2
Configuration Examples for Secure Shell Version 2 Support
Configuring Secure Shell Version 1: Example
Configuring Secure Shell Version 2: Example
Configuring Secure Shell Versions 1 and 2: Example
Starting an Encrypted Session with a Remote Device: Example
Feature Information for Secure Shell Version 2 Support
Secure Shell Version 2 Support
First Published: November 3, 2003Last Updated: September 10, 2007The Secure Shell Version 2 Support feature allows you to configure Secure Shell (SSH) Version 2 (SSH Version 1 support was implemented in an earlier Cisco IOS software release). SSH runs on top of a reliable transport layer and provides strong authentication and encryption capabilities. Currently, the only reliable transport that is defined for SSH is TCP. SSH provides a means to securely access and securely execute commands on another computer over a network. The Secure Copy Protocol (SCP) feature that is provided with SSH also allows for the secure transfer of files.
Finding Feature Information in This Module
Your Cisco IOS software release may not support all of the features documented in this module. To reach links to specific feature documentation in this module and to see a list of the releases in which each feature is supported, use the "Feature Information for Secure Shell Version 2 Support" section.
Finding Support Information for Platforms and Cisco IOS and Catalyst OS Software Images
Use Cisco Feature Navigator to find information about platform support and Cisco IOS and Catalyst OS software image support. To access Cisco Feature Navigator, go to http://www.cisco.com/go/cfn. An account on Cisco.com is not required.
Contents
•
Prerequisites for Secure Shell Version 2 Support
•
Restrictions for Secure Shell Version 2 Support
•
Information About Secure Shell Version 2 Support
•
How to Configure Secure Shell Version 2 Support
•
Configuration Examples for Secure Shell Version 2 Support
Prerequisites for Secure Shell Version 2 Support
Prior to configuring SSH, perform the following task:
•
Download the required image on your router. The SSH server requires you to have a k9 (Triple Data Encryption Standard [3DES]) software image from Cisco IOS Release 12.3(4)T, 12.2(25)S, or 12.3(7)JA downloaded on your router.
Note
The SSH Version 2 server is supported in Cisco IOS Release 12.3(4)T, 12.3(2)XE, 12.2(25)S, and 12.3(7)JA; the SSH Version 2 client is supported beginning with Cisco IOS Release 12.3(7)T and is supported in Cisco IOS Release12.3(7)JA. (The SSH client runs both the SSH Version 1 and Version 2 protocol and is supported in both k8 and k9 images in Cisco IOS Release 12.3(4)T.)
For more information on downloading a software image, refer to Cisco IOS Configuration Fundamentals and Network Management Configuration Guide.
Restrictions for Secure Shell Version 2 Support
•
Rivest, Shamir, and Adelman (RSA) user authentication is not supported in the SSH server or SSH client for Cisco IOS software.
•
SSH servers and SSH clients are supported in 3DES software images.
•
Execution Shell, remote command execution, and Secure Copy Protocol (SCP) are the only applications supported.
•
Compression is not supported.
•
The RSA key-pair size must be greater than or equal to 768.
Information About Secure Shell Version 2 Support
To configure SSH Version 2, you should understand the following concept:
Secure Shell Version 2
The Secure Shell Version 2 Support feature allows you to configure SSH Version 2.
The configuration for the SSH Version 2 server is similar to the configuration for SSH Version 1. The command ip ssh version has been introduced so that you may define which version of SSH that you want to configure. If you do not configure this command, SSH by default runs in compatibility mode; that is, both SSH Version 1 and SSH Version 2 connections are honored.
Note
SSH Version 1 is a protocol that has never been defined in a standard. If you do not want your router to fall back to the undefined protocol (Version 1), you should use the ip ssh version command and specify Version 2.
The ip ssh rsa keypair-name command was also introduced in Cisco IOS Release 12.3(4)T so that you can enable a SSH connection using RSA keys that you have configured. Previously, SSH was linked to the first RSA keys that were generated (that is, SSH was enabled when the first RSA key pair was generated). The behavior still exists, but by using the ip ssh rsa keypair-name command, you can overcome that behavior. If you configure the ip ssh rsa keypair-name command with a key-pair name, SSH is enabled if the key pair exists, or SSH will be enabled if the key pair is generated later. If you use this command to enable SSH, you are not forced to configure a host name and a domain name, which was required in SSH Version 1 of the Cisco IOS software.
Note
The login banner is supported in Secure Shell Version 2, but it is not supported in Secure Shell Version 1.
SNMP Trap Generation
Effective with Cisco IOS Release 12.4(17), Simple Network Management Protocol (SNMP) traps will be generated automatically when an SSH session terminates if the traps have been enabled and SNMP debugging has been turned on. For information about enabling SNMP traps, see the chapter "Configuring SNMP Support" in the Cisco IOS Network Management Configuration Guide.
Note
When configuring the snmp-server host command, the IP address must be the address of the PC that has the SSH (telnet) client and that has IP connectivity to the SSH server. For an example of an SNMP trap generation configuration, see the section "Setting an SNMP Trap: Example."
You must also turn on SNMP debugging using the debug snmp packet command to display the traps. The trap information includes information such as the number of bytes sent and the protocol that was used for the SSH session. For an example of SNMP debugging, see the section "SNMP Debugging: Example."
How to Configure Secure Shell Version 2 Support
This section contains the following procedures:
•
Configuring a Router for SSH Version 2 Using a Host Name and Domain Name (required)
•
Configuring a Router for SSH Version 2 Using RSA Key Pairs (optional)
•
Starting an Encrypted Session with a Remote Device (optional)
•
Verifying the Status of the Secure Shell Connection Using the show ssh Command (optional)
•
Verifying the Secure Shell Status Using the show ip ssh Command (optional)
•
Monitoring and Maintaining Secure Shell Version 2 (optional)
Configuring a Router for SSH Version 2 Using a Host Name and Domain Name
To configure your router for SSH Version 2 using a host name and domain name, perform the following steps. You may also configure SSH Version 2 by using the RSA key pair configuration (See the section "Configuring a Router for SSH Version 2 Using RSA Key Pairs").
SUMMARY STEPS
1.
enable
2.
configure terminal
3.
hostname hostname
4.
ip domain-name name
5.
crypto key generate rsa
6.
ip ssh [timeout seconds | authentication-retries integer]
7.
ip ssh version [1 | 2]
DETAILED STEPS
Configuring a Router for SSH Version 2 Using RSA Key Pairs
To enable SSH Version 2 without configuring a host name or domain name, perform the following steps. SSH Version 2 will be enabled if the key pair that you configure already exists or if it is generated later. You may also configure SSH Version 2 by using the host name and domain name configuration (See the section "Configuring a Router for SSH Version 2 Using a Host Name and Domain Name").
SUMMARY STEPS
1.
enable
2.
configure terminal
3.
ip ssh rsa keypair-name keypair-name
4.
crypto key generate rsa usage-keys label key-label modulus modulus-size
5.
ip ssh [timeout seconds | authentication-retries integer]
6.
ip ssh version [1 | 2]
DETAILED STEPS
Starting an Encrypted Session with a Remote Device
To start an encrypted session with a remote networking device, perform the following step. (You do not have to enable your router. SSH can be run in disabled mode.)
Note
The device you wish to connect with must support a SSH server that has an encryption algorithm that is supported in Cisco IOS software.
SUMMARY STEPS
1.
ssh [-v {1 | 2}] [-c {3des | aes128-cbc | aes192-cbc | aes256-cbc}] [-m {hmac-md5 | hmac-md5-96 | hmac-sha1 | hmac-sha1-96}] [l userid] [-o numberofpasswordprompts n] [-p port-num] {ip-addr | hostname} [command]
DETAILED STEPS
Troubleshooting Tips
The ip ssh version command can be used for troubleshooting your SSH configuration. By changing versions, you can determine which SSH version has a problem.
Verifying the Status of the Secure Shell Connection Using the show ssh Command
To display the status of the SSH connection on your router, use the show ssh command.
SUMMARY STEPS
1.
enable
2.
show ssh
DETAILED STEPS
Step 1
enable
Example:Router> enable
Enables privileged EXEC mode.
•
Enter your password if prompted.
Step 2
show ssh
Example:Router# show ssh
Displays the status of SSH server connections.
Examples
The following output examples from the show ssh command display status about various SSH Version 1 and Version 2 connections.
Version 1 and Version 2 Connections
-----------------------------------------------------------------------Router# show sshConnection Version Encryption State Username0 1.5 3DES Session started labConnection Version Mode Encryption Hmac StateUsername1 2.0 IN aes128-cbc hmac-md5 Session started lab1 2.0 OUT aes128-cbc hmac-md5 Session started lab-------------------------------------------------------------------------Version 2 Connection with No Version 1
-------------------------------------------------------------------------Router# show sshConnection Version Mode Encryption Hmac StateUsername1 2.0 IN aes128-cbc hmac-md5 Session started lab1 2.0 OUT aes128-cbc hmac-md5 Session started lab%No SSHv1 server connections running.-------------------------------------------------------------------------Version 1 Connection with No Version 2
-------------------------------------------------------------------------Router# show sshConnection Version Encryption State Username0 1.5 3DES Session started lab%No SSHv2 server connections running.-------------------------------------------------------------------------Verifying the Secure Shell Status Using the show ip ssh Command
To verify your SSH configuration, perform the following steps.
SUMMARY STEPS
1.
enable
2.
show ip ssh
DETAILED STEPS
Examples
The following examples from the show ip ssh command display the version of SSH that is enabled, the authentication timeout values, and the number of authentication retries.
Version 1 and Version 2 Connections
-----------------------------------------------------------------------router# show ip ssh3d06h: %SYS-5-CONFIG_I: Configured from console by consolehSSH Enabled - version 1.99Authentication timeout: 120 secs; Authentication retries: 3-----------------------------------------------------------------------Version 2 Connection with No Version 1
------------------------------------------------------------------------Router# show ip sshSSH Enabled - version 2.0Authentication timeout: 120 secs; Authentication retries: 3------------------------------------------------------------------------Version 1 Connection with No Version 2
------------------------------------------------------------------------Router# show ip ssh3d06h: %SYS-5-CONFIG_I: Configured from console by consoleSSH Enabled - version 1.5Authentication timeout: 120 secs; Authentication retries: 3------------------------------------------------------------------------Monitoring and Maintaining Secure Shell Version 2
To display debug messages about the SSH connections, use the debug ip ssh command.
SUMMARY STEPS
1.
enable
2.
debug ip ssh
3.
debug snmp packet
DETAILED STEPS
Example
The following output from the debug ip ssh command shows that the digit 2 keyword has been assigned, signifying that it is an SSH Version 2 connection.
Router# debug ip ssh00:33:55: SSH1: starting SSH control process00:33:55: SSH1: sent protocol version id SSH-1.99-Cisco-1.2500:33:55: SSH1: protocol version id is - SSH-2.0-OpenSSH_2.5.2p200:33:55: SSH2 1: send: len 280 (includes padlen 4)00:33:55: SSH2 1: SSH2_MSG_KEXINIT sent00:33:55: SSH2 1: ssh_receive: 536 bytes received00:33:55: SSH2 1: input: packet len 63200:33:55: SSH2 1: partial packet 8, need 624, maclen 000:33:55: SSH2 1: ssh_receive: 96 bytes received00:33:55: SSH2 1: partial packet 8, need 624, maclen 000:33:55: SSH2 1: input: padlen 1100:33:55: SSH2 1: received packet type 2000:33:55: SSH2 1: SSH2_MSG_KEXINIT received00:33:55: SSH2: kex: client->server aes128-cbc hmac-md5 none00:33:55: SSH2: kex: server->client aes128-cbc hmac-md5 none00:33:55: SSH2 1: expecting SSH2_MSG_KEXDH_INIT00:33:55: SSH2 1: ssh_receive: 144 bytes received00:33:55: SSH2 1: input: packet len 14400:33:55: SSH2 1: partial packet 8, need 136, maclen 000:33:55: SSH2 1: input: padlen 500:33:55: SSH2 1: received packet type 3000:33:55: SSH2 1: SSH2_MSG_KEXDH_INIT received00:33:55: SSH2 1: signature length 11100:33:55: SSH2 1: send: len 384 (includes padlen 7)00:33:55: SSH2: kex_derive_keys complete00:33:55: SSH2 1: send: len 16 (includes padlen 10)00:33:55: SSH2 1: newkeys: mode 100:33:55: SSH2 1: SSH2_MSG_NEWKEYS sent00:33:55: SSH2 1: waiting for SSH2_MSG_NEWKEYS00:33:55: SSH2 1: ssh_receive: 16 bytes received00:33:55: SSH2 1: input: packet len 1600:33:55: SSH2 1: partial packet 8, need 8, maclen 000:33:55: SSH2 1: input: padlen 1000:33:55: SSH2 1: newkeys: mode 000:33:55: SSH2 1: received packet type 2100:33:55: SSH2 1: SSH2_MSG_NEWKEYS received00:33:56: SSH2 1: ssh_receive: 48 bytes received00:33:56: SSH2 1: input: packet len 3200:33:56: SSH2 1: partial packet 16, need 16, maclen 1600:33:56: SSH2 1: MAC #3 ok00:33:56: SSH2 1: input: padlen 1000:33:56: SSH2 1: received packet type 500:33:56: SSH2 1: send: len 32 (includes padlen 10)00:33:56: SSH2 1: done calc MAC out #300:33:56: SSH2 1: ssh_receive: 64 bytes received00:33:56: SSH2 1: input: packet len 4800:33:56: SSH2 1: partial packet 16, need 32, maclen 1600:33:56: SSH2 1: MAC #4 ok00:33:56: SSH2 1: input: padlen 900:33:56: SSH2 1: received packet type 5000:33:56: SSH2 1: send: len 32 (includes padlen 13)00:33:56: SSH2 1: done calc MAC out #400:34:04: SSH2 1: ssh_receive: 160 bytes received00:34:04: SSH2 1: input: packet len 6400:34:04: SSH2 1: partial packet 16, need 48, maclen 1600:34:04: SSH2 1: MAC #5 ok00:34:04: SSH2 1: input: padlen 1300:34:04: SSH2 1: received packet type 5000:34:04: SSH2 1: send: len 16 (includes padlen 10)00:34:04: SSH2 1: done calc MAC out #500:34:04: SSH2 1: authentication successful for lab00:34:04: SSH2 1: input: packet len 6400:34:04: SSH2 1: partial packet 16, need 48, maclen 1600:34:04: SSH2 1: MAC #6 ok00:34:04: SSH2 1: input: padlen 600:34:04: SSH2 1: received packet type 200:34:04: SSH2 1: ssh_receive: 64 bytes received00:34:04: SSH2 1: input: packet len 4800:34:04: SSH2 1: partial packet 16, need 32, maclen 1600:34:04: SSH2 1: MAC #7 ok00:34:04: SSH2 1: input: padlen 1900:34:04: SSH2 1: received packet type 9000:34:04: SSH2 1: channel open request00:34:04: SSH2 1: send: len 32 (includes padlen 10)00:34:04: SSH2 1: done calc MAC out #600:34:04: SSH2 1: ssh_receive: 192 bytes received00:34:04: SSH2 1: input: packet len 6400:34:04: SSH2 1: partial packet 16, need 48, maclen 1600:34:04: SSH2 1: MAC #8 ok00:34:04: SSH2 1: input: padlen 1300:34:04: SSH2 1: received packet type 9800:34:04: SSH2 1: pty-req request00:34:04: SSH2 1: setting TTY - requested: height 24, width 80; set: height 24,width 8000:34:04: SSH2 1: input: packet len 9600:34:04: SSH2 1: partial packet 16, need 80, maclen 1600:34:04: SSH2 1: MAC #9 ok00:34:04: SSH2 1: input: padlen 1100:34:04: SSH2 1: received packet type 9800:34:04: SSH2 1: x11-req request00:34:04: SSH2 1: ssh_receive: 48 bytes received00:34:04: SSH2 1: input: packet len 3200:34:04: SSH2 1: partial packet 16, need 16, maclen 1600:34:04: SSH2 1: MAC #10 ok00:34:04: SSH2 1: input: padlen 1200:34:04: SSH2 1: received packet type 9800:34:04: SSH2 1: shell request00:34:04: SSH2 1: shell message received00:34:04: SSH2 1: starting shell for vty00:34:04: SSH2 1: send: len 48 (includes padlen 18)00:34:04: SSH2 1: done calc MAC out #700:34:07: SSH2 1: ssh_receive: 48 bytes received00:34:07: SSH2 1: input: packet len 3200:34:07: SSH2 1: partial packet 16, need 16, maclen 1600:34:07: SSH2 1: MAC #11 ok00:34:07: SSH2 1: input: padlen 1700:34:07: SSH2 1: received packet type 9400:34:07: SSH2 1: send: len 32 (includes padlen 17)00:34:07: SSH2 1: done calc MAC out #800:34:07: SSH2 1: ssh_receive: 48 bytes received00:34:07: SSH2 1: input: packet len 3200:34:07: SSH2 1: partial packet 16, need 16, maclen 1600:34:07: SSH2 1: MAC #12 ok00:34:07: SSH2 1: input: padlen 1700:34:07: SSH2 1: received packet type 9400:34:07: SSH2 1: send: len 32 (includes padlen 17)00:34:07: SSH2 1: done calc MAC out #900:34:07: SSH2 1: ssh_receive: 48 bytes received00:34:07: SSH2 1: input: packet len 3200:34:07: SSH2 1: partial packet 16, need 16, maclen 1600:34:07: SSH2 1: MAC #13 ok00:34:07: SSH2 1: input: padlen 1700:34:07: SSH2 1: received packet type 9400:34:07: SSH2 1: send: len 32 (includes padlen 17)00:34:07: SSH2 1: done calc MAC out #1000:34:08: SSH2 1: ssh_receive: 48 bytes received00:34:08: SSH2 1: input: packet len 3200:34:08: SSH2 1: partial packet 16, need 16, maclen 1600:34:08: SSH2 1: MAC #14 ok00:34:08: SSH2 1: input: padlen 1700:34:08: SSH2 1: received packet type 9400:34:08: SSH2 1: send: len 32 (includes padlen 17)00:34:08: SSH2 1: done calc MAC out #1100:34:08: SSH2 1: ssh_receive: 48 bytes received00:34:08: SSH2 1: input: packet len 3200:34:08: SSH2 1: partial packet 16, need 16, maclen 1600:34:08: SSH2 1: MAC #15 ok00:34:08: SSH2 1: input: padlen 1700:34:08: SSH2 1: received packet type 9400:34:08: SSH2 1: send: len 32 (includes padlen 16)00:34:08: SSH2 1: done calc MAC out #1200:34:08: SSH2 1: send: len 48 (includes padlen 18)00:34:08: SSH2 1: done calc MAC out #1300:34:08: SSH2 1: send: len 16 (includes padlen 6)00:34:08: SSH2 1: done calc MAC out #1400:34:08: SSH2 1: send: len 16 (includes padlen 6)00:34:08: SSH2 1: done calc MAC out #1500:34:08: SSH1: Session terminated normallyConfiguration Examples for Secure Shell Version 2 Support
This section provides the following configuration examples:
•
Configuring Secure Shell Version 1: Example
•
Configuring Secure Shell Version 2: Example
•
Configuring Secure Shell Versions 1 and 2: Example
•
Starting an Encrypted Session with a Remote Device: Example
•
Setting an SNMP Trap: Example
Configuring Secure Shell Version 1: Example
Router# configure terminalRouter (config)# ip ssh version 1c7200-25-2013(config)# endConfiguring Secure Shell Version 2: Example
Router# configure terminalEnter configuration commands, one per line. End with CNTL/Z.Router(config)# ip ssh version 2Router(config)# endConfiguring Secure Shell Versions 1 and 2: Example
Router# configure terminalRouter (config)# no ip ssh versionRouter (config)# endStarting an Encrypted Session with a Remote Device: Example
Router# ssh -v 2 -c aes256-cbc -m hmac-sha1-160 -l shaship 10.76.82.24Setting an SNMP Trap: Example
The following shows that an SNMP trap has been set. The trap notification is generated automatically when the SSH session terminates. For an example of SNMP trap debug output, see the section "SNMP Debugging: Example."
Router# snmp-serverRouter# snmp-server host a.b.c.d public ttyWhere a.b.c.d is the IP address of the SSH client.
SNMP Debugging: Example
The following is sample output using the debug snmp packet command. The output provides SNMP trap information for an SSH session.
router1# debug snmp packetSNMP packet debugging is onrouter1# ssh -l lab 10.0.0.2Password:router2# exit[Connection to 10.0.0.2 closed by foreign host]router1#*Jul 18 10:18:42.619: SNMP: Queuing packet to 10.0.0.2*Jul 18 10:18:42.619: SNMP: V1 Trap, ent cisco, addr 10.0.0.1, gentrap 6, spectrap 1local.9.3.1.1.2.1 = 6tcpConnEntry.1.10.0.0.1.22.10.0.0.2.55246 = 4ltcpConnEntry.5.10.0.0.1.22.10.0.0.2.55246 = 1015ltcpConnEntry.1.10.0.0.1.22.10.0.0.2.55246 = 1056ltcpConnEntry.2.10.0.0.1.22.10.0.0.2.55246 = 1392local.9.2.1.18.2 = lab*Jul 18 10:18:42.879: SNMP: Packet sent via UDP to 10.0.0.2router1#Where to Go Next
You have to use a SSH remote device that supports SSH Version 2, and you have to connect to a Cisco IOS router.
Additional References
The following sections provide references related to Secure Shell Version 2.
Related Documents
Related Topic Document TitleAAA
"Authentication, Authorization, and Accounting (AAA)" section of Cisco IOS Security Configuration Guide
Configuring a host name and host domain
"Configuring Secure Shell" chapter in the Cisco IOS Security Configuration Guide
Configuring Secure Shell
"Configuring Secure Shell" chapter of Cisco IOS Security Configuration Guide
Debugging commands
Cisco IOS Debug Command Reference, Release 12.4T
Downloading a Cisco software image
Cisco IOS Configuration Fundamentals and Network Management Configuration Guide
IOS configuration fundamentals
Cisco IOS Configuration Fundamentals and Network Management Configuration Guide and Cisco IOS Configuration Fundamentals and Network Management Command Reference
IPSec
"IP Security and Encryption" section of Cisco IOS Security Configuration Guide
Security commands
Cisco IOS Security Command Reference, Release 12.4 T
SNMP, configuring traps
"Configuring SNMP Support" chapter in Cisco IOS Network Management Configuration Guide
Standards
MIBs
RFCs
Technical Assistance
Command Reference
This section documents only commands that are new or modified.
•
ssh
ip ssh rsa keypair-name
To specify which Rivest, Shimar, and Adelman (RSA) key pair to use for a Secure Shell (SSH) connection, use the ip ssh rsa keypair-name command in global configuration mode. To disable the key pair that was configured, use the no form of this command.
ip ssh rsa keypair-name keypair-name
no ip ssh rsa keypair-name keypair-name
Syntax Description
Defaults
If this command is not configured, SSH will use the first RSA key pair that is enabled.
Command Modes
Global configuration
Command History
Usage Guidelines
Using the ip ssh rsa keypair-name command, you can enable an SSH connection using RSA keys that you have configured using the keypair-name argument. Previously, SSH was tied to the first RSA keys that were generated (that is, SSH was enabled when the first RSA key pair was generated). The previous behavior still exists but by using the ip ssh rsa keypair-name command, you can overcome that behavior. If you configure the ip ssh rsa keypair-name command with a key pair name, SSH is enabled if the key pair exists, or SSH will be enabled if the key pair is generated later. If you use this command, you are not forced to configure a host name and a domain name.
Note
A Cisco IOS router can have many RSA key pairs.
Examples
The following example shows that the ip ssh rsa keypair-name command has been used to specify the RSA key pair "sshkeys" for a SSH connection:
Router# configure terminalRouter (config)# ip ssh rsa keypair-name sshkeysRelated Commands
ip ssh version
To specify the version of Secure Shell (SSH) to be run on a router, use the ip ssh version command in global configuration mode. To disable the version of SSH that was configured and to return to compatibility mode, use the no form of this command.
ip ssh version [1 | 2]
no ip ssh version [1 | 2]
Syntax Description
Defaults
If this command is not configured, SSH operates in compatibility mode, that is, Version 1 and Version 2 are both supported.
Command Modes
Global configuration
Command History
Usage Guidelines
You can use this command with the 2 keyword to ensure that your router will not inadvertently establish a weaker SSH Version 1 connection.
Examples
The following example shows that only SSH Version 1 support is configured:
Router (config)# ip ssh version 1The following example shows that only SSH Version 2 is configured:
Router (config)# ip ssh version 2The following example shows that SSH Versions 1 and 2 are configured:
Router (config)# no ip ssh versionRelated Commands
ssh
To start an encrypted session with a remote networking device, use the ssh command in privileged EXEC or user EXEC mode.
ssh [-v {1 | 2}] [-c {3des | aes128-cbc | aes192-cbc | aes256-cbc}] [-l userid | -l userid:number ip-address | -l userid:rotarynumber ip-address] [-m {hmac-md5 | hmac-md5-96 | hmac-sha1 | hmac-sha1-96}] [-o numberofpasswordprompts n] [-p port-num] {ip-addr | hostname} [command]
Syntax Description
Command Default
Disabled
Command Modes
User EXEC
Privileged EXECCommand History
Usage Guidelines
The ssh command enables a Cisco router to make a secure, encrypted connection to another Cisco router or device running an SSH Version 1 or Version 2 server. This connection provides functionality that is similar to that of an outbound Telnet connection except that the connection is encrypted. With authentication and encryption, the SSH client allows for a secure communication over an insecure network.
Note
•
SSH 1 is supported on DES (56-bit) and 3DES (168-bit) data encryption software images only. In DES software images, DES is the only encryption algorithm available. In 3DES software images, both DES and 3DES encryption algorithms are available.
•
SSH Version 2 supports only the following crypto algorithms: aes128-cbc, aes192-cbc, and aes256-cbc. SSH Version 2 is supported only in 3DES images.
•
SSH Version 1 does not support HMAC algorithms.
Examples
The following example illustrates the initiation of a secure session between the local router and the remote host HQhost to run the show users command. The result of the show users command is a list of valid users who are logged in to HQhost. The remote host will prompt for the adminHQ password to authenticate the user adminHQ. If the authentication step is successful, the remote host will return the result of the show users command to the local router and will then close the session.
ssh -l adminHQ HQhost "show users"The following example illustrates the initiation of a secure session between the local router and the edge router HQedge to run the show ip route command. In this example, the edge router prompts for the adminHQ password to authenticate the user. If the authentication step is successful, the edge router will return the result of the show ip route command to the local router.
ssh -l adminHQ HQedge "show ip route"The following example shows the SSH client using 3DES to initiate a secure remote command connection with the HQedge router. The SSH server running on HQedge authenticates the session for the admin7 user on the HQedge router using standard authentication methods. The HQedge router must have SSH enabled for authentication to work.
ssh -l admin7 -c 3des -o numberofpasswordprompts 5 HQedgeThe following example shows a secure session between the local router and a remote IPv6 router with the address 3ffe:1111:2222:1044::72 to run the show running-config command. In this example, the remote IPv6 router prompts for the adminHQ password to authenticate the user. If the authentication step is successful, the remote IPv6 router will return the result of the show running-config command to the local router and will then close the session.
ssh -l adminHQ 3ffe:1111:2222:1044::72 "show running-config"
Note
A hostname that maps to the IPv6 address 3ffe:1111:2222:1044::72 could have been used in the last example.
The following example shows a SSH Version 2 session using the crypto algorithm aes256-cbc and an HMAC of hmac-sha1-96. The user ID is user2, and the IP address is 10.76.82.24.
ssh -v 2 -c aes256-cbc -m hmac-sha1-96 -1 user2 10.76.82.24The following example shows that reverse SSH has been configured on the SSH client:
ssh -l lab:1 router.example.comThe following command shows that Reverse SSH will connect to the first free line in the rotary group:
ssh -l lab:rotary1 router.example.comRelated Commands
Feature Information for Secure Shell Version 2 Support
Table 1 lists the release history for this feature.
Not all commands may be available in your Cisco IOS software release. For release information about a specific command, see the command reference documentation.
Use Cisco Feature Navigator to find information about platform support and software image support. Cisco Feature Navigator enables you to determine which Cisco IOS and Catalyst OS software images support a specific software release, feature set, or platform. To access Cisco Feature Navigator, go to http://www.cisco.com/go/cfn. An account on Cisco.com is not required.
Note
Table 1 lists only the Cisco IOS software release that introduced support for a given feature in a given Cisco IOS software release train. Unless noted otherwise, subsequent releases of that Cisco IOS software release train also support that feature.
Table 1 Feature Information for Secure Shell Version 2 Support
Feature Name Releases Feature InformationSecure Shell Version 2 Support
12.3(4)T
12.2(25)SThe Secure Shell Version 2 Support feature allows you to configure Secure Shell (SSH) Version 2 (SSH Version 1 support was implemented in an earlier Cisco IOS software release). SSH runs on top of a reliable transport layer and provides strong authentication and encryption capabilities.
Secure Shell Version 2 Client and Server Support
12.3(7)JA
12.0(32)SYThis feature was integrated into Cisco IOS Release 12.3(7)JA.
Secure Shell Version 2 Client and Server Support
12.4(17)
The Cisco IOS image was updated to provide for the automatic generation of SNMP traps when an SSH session terminates.
For information about this feature, see the following section:
•
"SNMP Trap Generation" section
Any Internet Protocol (IP) addresses used in this document are not intended to be actual addresses. Any examples, command display output, and figures included in the document are shown for illustrative purposes only. Any use of actual IP addresses in illustrative content is unintentional and coincidental.
© 2003-2007 Cisco Systems, Inc. All rights reserved.

