Konfigurieren von Secure Shell auf Routern und Switches mit Cisco IOS

Einführung

Secure Shell (SSH) ist ein Protokoll, das eine sichere Fernzugriffsverbindung zu Netzwerkgeräten bietet. Die Kommunikation zwischen Client und Server wird sowohl in SSH Version 1 als auch in SSH Version 2 verschlüsselt. Implementieren Sie SSH Version 2, wenn möglich, da es einen erweiterten Sicherheitsverschlüsselungsalgorithmus verwendet.,

In diesem Dokument wird erläutert, wie Sie SSH auf Cisco Routern oder Switches konfigurieren und debuggen, auf denen eine Version der Cisco IOS® – Software ausgeführt wird, die SSH unterstützt. Dieses Dokument enthält weitere Informationen zu bestimmten Versionen und Software-Images.

Voraussetzungen

Voraussetzungen

Komponenten

Die Informationen in diesem Dokument basieren auf der Cisco IOS-3600 Software (C3640-IK9S-M), Version 12.2(2)T1.

SSH wurde in diese Cisco IOS Plattformen und Images eingeführt:

  • SSH Version 1.,0 (SSH v1) Server wurde in einigen Cisco IOS-Plattformen und Bilder eingeführt, die in Cisco IOS Software Release 12.0.5 starten.S.

  • SSH-client eingeführt, in einigen Cisco IOS-Plattformen und Bilder ab Cisco IOS Software Release 12.1.3.T.

  • SSH-terminal-line-Zugang (auch bekannt als reverse-Telnet) wurde eingeführt, in einigen Cisco IOS-Plattformen und Bilder ab Cisco IOS Software Release 12.2.2.T.

  • SSH Version 2.0 (SSH v2) Unterstützung wurde eingeführt, in einigen Cisco IOS-Plattformen und Bilder ab Cisco IOS Software Release 12.1(19)E.,

  • Weitere Informationen zur SSH-Unterstützung in den Switches finden Sie unter Konfigurieren von SSH auf Catalyst-Switches mit CatOS.

Eine vollständige Liste der Feature-Sets, die in verschiedenen Cisco IOS-Softwareversionen und auf verschiedenen Plattformen unterstützt werden, finden Sie im Software Advisor (nur registrierte Kunden).

Die Informationen in diesem Dokument wurden von Geräten in einer bestimmten Laborumgebung erstellt. Alle in diesem Dokument verwendeten Geräte wurden mit einer gelöschten (Standard -) Konfiguration gestartet., Wenn Sie sich in einem Live-Netzwerk befinden, stellen Sie sicher, dass Sie die möglichen Auswirkungen eines Befehls verstehen, bevor Sie ihn verwenden.

Konventionen

Weitere Informationen zu Dokumentkonventionen finden Sie unter Cisco Technical Tips Conventions.

SSH v1 vs. SSH v2

Verwenden Sie den Cisco Software Advisor (nur registrierte Kunden), um die Codeversion mit entsprechender Unterstützung für SSH v1 oder SSH v2 zu finden.,

Netzwerkdiagramm

Authentifizierung testen

Authentifizierungstest ohne SSH

Testen Sie zuerst die Authentifizierung ohne SSH, um sicherzustellen, dass die Authentifizierung mit dem Router funktioniert, bevor Sie SSH hinzufügen. Die Authentifizierung kann mit einem lokalen Benutzernamen und Kennwort oder mit einem Authentifizierungs -, Autorisierungs-und Buchhaltungsserver (AAA) erfolgen, auf dem TACACS+ oder RADIUS ausgeführt wird. (Die Authentifizierung über das Zeilenpasswort ist mit SSH nicht möglich.,) Dieses Beispiel zeigt die lokale Authentifizierung, mit der Sie Telnet in den Router mit Benutzername „cisco“ und Passwort „cisco.“

!--- The aaa new-model command causes the local username and password on the router !--- to be used in the absence of other AAA statements.aaa new-modelusername cisco password 0 ciscoline vty 0 4transport input telnet!--- Instead of aaa new-model, you can use the login local command.

Authentifizierungstest mit SSH

Um die Authentifizierung mit SSH zu testen, müssen Sie zu den vorherigen Anweisungen hinzufügen, um SSH auf dem PC zu aktivieren und SSH von den PC-und UNIX-Stationen aus zu testen.

ip domain-name rtp.cisco.com!--- Generate an SSH key to be used with SSH.crypto key generate rsaip ssh time-out 60ip ssh authentication-retries 2

Zu diesem Zeitpunkt muss der Befehl show crypto key mypubkey rsa den generierten Schlüssel anzeigen., Testen Sie nach dem Hinzufügen der SSH-Konfiguration, ob Sie von der PC-und UNIX-Station aus auf den Router zugreifen können. Wenn dies nicht funktioniert, finden Sie im Abschnitt Debug dieses Dokuments.

Optionale Konfigurationseinstellungen

Verhindern Sie Nicht-SSH-Verbindungen

Wenn Sie Nicht-SSH-Verbindungen verhindern möchten, fügen Sie den Befehl transport input ssh unter den Zeilen hinzu, um den Router nur auf SSH-Verbindungen zu beschränken. Gerade (nicht-SSH) Telnets werden abgelehnt.,

line vty 0 4!--- Prevent non-SSH Telnets.transport input ssh

Testen Sie, ob Nicht-SSH-Benutzer keine Telnet-Verbindung zum Router herstellen können.

Richten Sie einen IOS-Router oder Switch als SSH-Client ein

Um die SSH-Unterstützung auf einem Cisco IOS-Router zu aktivieren, sind vier Schritte erforderlich:

  1. Konfigurieren Sie den Befehl hostname.

  2. Konfigurieren Sie die DNS-Domäne ein.

  3. Generieren Sie den zu verwendenden SSH-Schlüssel.

  4. SSH-Transportunterstützung für das Virtual Type Terminal (vtys) aktivieren.,

Wenn Sie möchten, dass ein Gerät als SSH-Client für den anderen fungiert, können Sie SSH zu einem zweiten Gerät namens Reed hinzufügen. Diese Geräte befinden sich dann in einer Client-Server-Anordnung, in der Carter als Server und Reed als Client fungiert. Die Cisco IOS SSH-Client-Konfiguration auf Reed ist die gleiche wie für die SSH-Server-Konfiguration auf Linux erforderlich.,

Geben Sie diesen Befehl an SSH vom Cisco IOS SSH Client (Reed) an den Cisco IOS SSH Server (Carter) aus, um dies zu testen:

  • SSH v1:

    ssh -l cisco -c 3des 10.13.1.99
  • SSH v2:

    ssh -v 2 -c aes256-cbc -m hmac-sha1-160 -l cisco 10.31.1.99

Richten Sie einen IOS-Router als SSH-Server ein, der die RSA-basierte Benutzerauthentifizierung durchführt

Führen Sie diese Schritte aus, um den SSH-Server für die RSA-basierte Authentifizierung zu konfigurieren.,

SSH-Terminalzeilenzugriff hinzufügen

Wenn Sie eine Authentifizierung für ausgehende SSH-Terminalzeilen benötigen, können Sie SSH für ausgehende Reverse-Telnetze über Carter konfigurieren und testen, der als COMM-Server für Philly fungiert.,gh Kommt mit Hilfe dieses Befehls von Reed:

  • SSH v1:

    ssh -c 3des -p 2002 10.13.1.99
  • SSH v2:

    ssh -v 2 -c aes256-cbc -m hmac-sha1-160 -p 2002 10.31.1.99

Sie können diesen Befehl von Solaris verwenden:

ssh -c 3des -p 2002 -x -v 10.13.1.99

Beschränken Sie den SSH-Zugriff auf ein Subnetz

beschränken Sie die SSH-Konnektivität auf ein bestimmtes Subnetzwerk, in dem alle anderen SSH-Versuche von IPs außerhalb des Subnetzwerks gelöscht werden sollen.,

Mit diesen Schritten können Sie dasselbe erreichen:

  1. Definieren Sie eine Zugriffsliste, die den Datenverkehr aus diesem bestimmten Subnetzwerk zulässt.

  2. Beschränken Sie den Zugriff auf die VTY-Zeilenschnittstelle mit einer Zugriffsklasse.

Dies ist eine Beispielkonfiguration. In diesem Beispiel ist nur SSH-Zugriff auf das Subnetz 10.10.10.0 255.255.255.0 zulässig, jedem anderen wird der Zugriff verweigert.

Hinweis: Das gleiche Verfahren zum Sperren des SSH-Zugriffs gilt auch für Switch-Plattformen.,Configure the SSH Version

Configure SSH v1:

carter(config)#ip ssh version 1

Configure SSH v2:

carter(config)#ip ssh version 2

Configure SSH v1 and v2:

carter(config)#no ip ssh version

Note: You receive this error message when you use SSHv1:

%SCHED-3-THRASHING: Process thrashing on watched message event.

Note: Cisco bug ID CSCsu51740 (registered customers only) is filed for this issue., Problemumgehung ist die Konfiguration von SSHv2.

Variationen der Banner-Befehlsausgabe

Die Banner-Befehlsausgabe variiert zwischen Telnet und verschiedenen Versionen von SSH-Verbindungen. Diese Tabelle zeigt, wie verschiedene Banner-Befehlsoptionen mit verschiedenen Verbindungstypen funktionieren.,

Banner Command Option Telnet SSH v1 only SSH v1 und v2 nur SSH v2
banner login Wird vor der Anmeldung am Gerät angezeigt. Wird nicht angezeigt. Wird vor der Anmeldung am Gerät angezeigt., Wird vor der Anmeldung am Gerät angezeigt.
otd Wird vor der Anmeldung am Gerät angezeigt. Wird nach der Anmeldung am Gerät angezeigt. Wird nach der Anmeldung am Gerät angezeigt. Wird nach der Anmeldung am Gerät angezeigt.
banner exec Angezeigt nach dem einloggen in das Gerät., Wird nach der Anmeldung am Gerät angezeigt. Wird nach der Anmeldung am Gerät angezeigt. Wird nach der Anmeldung am Gerät angezeigt.

Das Anmeldebanner kann nicht angezeigt werden

SSH Version 2 unterstützt das Anmeldebanner. Das Anmeldebanner wird angezeigt, wenn der SSH-Client den Benutzernamen sendet, wenn er die SSH-Sitzung mit dem Cisco-Router initiiert. Wenn beispielsweise der Secure Shell SSH-Client verwendet wird, wird das Anmeldebanner angezeigt., Wenn der PuTTY – SSH-Client verwendet wird, wird das Anmeldebanner nicht angezeigt. Dies liegt daran, dass Secure Shell den Benutzernamen standardmäßig sendet und PuTTY den Benutzernamen standardmäßig nicht sendet.

Der Secure Shell-Client benötigt den Benutzernamen, um die Verbindung zum SSH-fähigen Gerät herzustellen. Die Schaltfläche Verbinden ist nicht aktiviert, wenn Sie den Hostnamen und den Benutzernamen nicht eingeben. Dieser Screenshot zeigt, dass das Anmeldebanner angezeigt wird, wenn Secure Shell eine Verbindung zum Router herstellt. Anschließend wird die Eingabeaufforderung Login und Passwort angezeigt.,

Für den PuTTY-Client ist kein Benutzername erforderlich, um die SSH-Verbindung zum Router herzustellen. Dieser Screenshot zeigt, dass der PuTTY-Client eine Verbindung zum Router herstellt und nach Benutzername und Kennwort fragt. Das Anmeldebanner wird nicht angezeigt.

Dieser Screenshot zeigt, dass das Anmeldebanner angezeigt wird, wenn PuTTY so konfiguriert ist, dass der Benutzername an den Router gesendet wird.,

Debug-und Show-Befehle

Bevor Sie die hier beschriebenen und illustrierten Debug-Befehle ausgeben, lesen Sie wichtige Informationen zu Debug-Befehlen. Bestimmte Show-Befehle werden vom Output-Interpreter-Tool (nur registrierte Kunden) unterstützt , mit dem Sie eine Analyse der Show-Befehlsausgabe anzeigen können.

  • debug ip-ssh—Zeigt debug-Meldungen für SSH.

  • show ssh†“ Zeigt den Status von SSH-Serververbindungen an.,

    carter#show ssh Connection Version Encryption State Username 0 1.5 DES Session started cisco
  • show ip ssh—Zeigt die versions-und Konfigurations-Daten für SSH.,

  • Version 1 Connection and no Version 2

    carter#show ip ssh SSH Enabled - version 1.5 Authentication timeout: 60 secs; Authentication retries: 2
  • Version 2 Connection and no Version 1

    carter#show ip ssh SSH Enabled - version 2.0 Authentication timeout: 120 secs; Authentication retries: 3
  • Version 1 and Version 2 Connections

    carter#show ip ssh SSH Enabled - version 1.99 Authentication timeout: 120 secs; Authentication retries: 3

Sample Debug Output

Router Debug

Note: Some of this good debug output is wrapped to multiple lines because of spatial considerations.,

Server Debug

Hinweis: Diese Ausgabe wurde auf einem Solaris-Computer erfasst.

Was kann schief gehen

Diese Abschnitte haben Beispiel-Debug-Ausgabe von mehreren falschen Konfigurationen.,

SSH von einem SSH-Client, der nicht mit Data Encryption Standard (DES) kompiliert wurde

Solaris Debug

Router Debug

Schlechtes Passwort

Router Debug

SSH-Client sendet nicht unterstützte (Blowfish) Chiffre

Router Debug

Geting the „%SSH-3-PRIVATEKEY: Unable to retrieve RSA private key for“ Fehler

Wenn Sie diese Fehlermeldung erhalten, kann dies auf Änderungen des Domänennamens oder des Hostnamens zurückzuführen sein. Um dies zu beheben, versuchen Sie diese Problemumgehungen.

  • Die RSA-Schlüssel auf Null setzen und die Schlüssel neu generieren.,

    crypto key zeroize rsa label key_namecrypto key generate rsa label key_name modulus key_size
  • Wenn die vorherige Problemumgehung nicht funktioniert, versuchen Sie diese Schritte:

    1. Alle RSA-Schlüssel auf Null setzen.

    2. Laden Sie das Gerät.

    3. Erstellen Sie neue beschriftete Schlüssel für SSH.

Cisco Bug ID CSCsa83601 (nur registrierte Kunden) wurde eingereicht, um dieses Verhalten zu beheben.

Tipps zur Fehlerbehebung

  • Wenn Ihre SSH-Konfigurationsbefehle als illegale Befehle abgelehnt werden, haben Sie kein RSA-Schlüsselpaar für Ihren Router erfolgreich generiert., Stellen Sie sicher, dass Sie einen Hostnamen und eine Domäne angegeben haben. Verwenden Sie dann den Befehl crypto key generate rsa, um ein RSA-Schlüsselpaar zu generieren und den SSH-Server zu aktivieren.

  • Wenn Sie das RSA-Schlüsselpaar konfigurieren, können folgende Fehlermeldungen auftreten:

    1. Kein Hostname angegeben

      Sie müssen einen Hostnamen für den Router mit dem globalen Konfigurationsbefehl hostname konfigurieren.

    2. Keine Domäne angegeben

      Sie müssen eine Hostdomäne für den Router mit dem globalen Konfigurationsbefehl IP-Domänenname konfigurieren.,

  • Die Anzahl der zulässigen SSH-Verbindungen ist auf die maximale Anzahl der für den Router konfigurierten vtys begrenzt. Jede SSH-Verbindung verwendet eine vty-Ressource.

  • SSH verwendet entweder lokale Sicherheit oder das Sicherheitsprotokoll, das über AAA auf Ihrem Router für die Benutzerauthentifizierung konfiguriert ist. Wenn Sie AAA konfigurieren, müssen Sie sicherstellen, dass die Konsole nicht unter AAA ausgeführt wird, indem Sie ein Schlüsselwort im globalen Konfigurationsmodus anwenden, um AAA auf der Konsole zu deaktivieren.

  • Es werden keine SSH-Serververbindungen ausgeführt.,

    carter#show ssh%No SSHv2 server connections running.%No SSHv1 server connections running.

    Diese Ausgabe legt nahe, dass der SSH-Server deaktiviert oder nicht richtig aktiviert ist. Wenn Sie SSH bereits konfiguriert haben, wird empfohlen, den SSH-Server im Gerät neu zu konfigurieren. Führen Sie diese Schritte aus, um den SSH-Server auf dem Gerät neu zu konfigurieren.

    1. Löschen Sie das RSA-Schlüsselpaar. Nachdem das RSA-Schlüsselpaar gelöscht wurde, wird der SSH-Server automatisch deaktiviert.,

      carter(config)#crypto key zeroize rsa

      Hinweis: Es ist wichtig, ein Schlüsselpaar mit mindestens 768 als Bitgröße zu generieren, wenn Sie SSH v2 aktivieren.

      Achtung: Dieser Befehl kann nicht rückgängig gemacht werden, nachdem Sie Ihre Konfiguration gespeichert haben und nachdem RSA-Schlüssel gelöscht wurden, können Sie keine Zertifikate oder die CA verwenden oder am Zertifikataustausch mit anderen IPSec-Peers (IPSec) teilnehmen, es sei denn, Sie konfigurieren die CA-Interoperabilität neu, indem Sie RSA-Schlüssel neu generieren, das Zertifikat der CA abrufen und Ihr eigenes Zertifikat erneut anfordern.,Finden Sie Krypto-Schlüssel zu Nullen rsa – Cisco IOS Security Command Reference, Release 12.3 weitere Informationen zu diesem Befehl.

    2. Konfigurieren Sie den Host-und Domänennamen des Geräts neu.

      carter(config)#hostname hostnamecarter(config)#ip domain-name domainname
    3. Generieren Sie ein RSA-Schlüsselpaar für Ihren router, die automatisch aktiviert SSH.

      carter(config)#crypto key generate rsa

      Beziehen sich auf crypto key generate rsa – Cisco IOS Security Command Reference, Release 12.3 für mehr Informationen über die Verwendung dieses Befehls.,

      Hinweis: Sie können die Fehlermeldung SSH2 0: Unexpected mesg type received aufgrund eines empfangenen Pakets empfangen, das vom Router nicht verständlich ist. Erhöhen Sie die Schlüssellänge, während Sie RSA-Schlüssel für ssh generieren, um dieses Problem zu beheben.

    4. SSH-Server konfigurieren. Um einen Cisco Router/Switch für SSH Server zu aktivieren und zu konfigurieren, können Sie SSH-Parameter konfigurieren. Wenn Sie keine SSH-Parameter konfigurieren, werden die Standardwerte verwendet.,

      ip ssh { | }

      carter(config)# ip ssh

      Siehe ip-ssh – Cisco IOS Security Command Reference, Release 12.3 für mehr Informationen über die Verwendung dieses Befehls.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.