In dem Dokumentationssatz für dieses Produkt wird die Verwendung inklusiver Sprache angestrebt. Für die Zwecke dieses Dokumentationssatzes wird Sprache als „inklusiv“ verstanden, wenn sie keine Diskriminierung aufgrund von Alter, körperlicher und/oder geistiger Behinderung, Geschlechtszugehörigkeit und -identität, ethnischer Identität, sexueller Orientierung, sozioökonomischem Status und Intersektionalität impliziert. Dennoch können in der Dokumentation stilistische Abweichungen von diesem Bemühen auftreten, wenn Text verwendet wird, der in Benutzeroberflächen der Produktsoftware fest codiert ist, auf RFP-Dokumentation basiert oder von einem genannten Drittanbieterprodukt verwendet wird. Hier erfahren Sie mehr darüber, wie Cisco inklusive Sprache verwendet.
Cisco hat dieses Dokument maschinell übersetzen und von einem menschlichen Übersetzer editieren und korrigieren lassen, um unseren Benutzern auf der ganzen Welt Support-Inhalte in ihrer eigenen Sprache zu bieten. Bitte beachten Sie, dass selbst die beste maschinelle Übersetzung nicht so genau ist wie eine von einem professionellen Übersetzer angefertigte. Cisco Systems, Inc. übernimmt keine Haftung für die Richtigkeit dieser Übersetzungen und empfiehlt, immer das englische Originaldokument (siehe bereitgestellter Link) heranzuziehen.
In diesem Dokument finden Sie eine Beschreibung der Secure Shell(SSH)-Konfiguration und -Fehlersuche auf Cisco Routern oder Switches mit einer Version der Cisco IOS®-Software.
Voraussetzung für SSH-Unterstützung ist die Verwendung eines Cisco IOS-Image des Typs k9(crypto). c3750e-universalk9-tar.122-35.SE5.tar ist beispielsweise ein Image des Typs „k9 (crypto)“.
Die Informationen in diesem Dokument beziehen sich auf die Cisco IOS 3600-Software (C3640-IK9S-M), Version 12.2(2)T1.
SSH wurde in die folgenden Cisco IOS-Plattformen und -Images integriert:
Unterstützung für Version 2.0 von SSH (SSHv2) ist in Cisco IOS-Plattformen und -Images ab Version 12.1(19)E der Cisco IOS-Software verfügbar.
Die Informationen in diesem Dokument beziehen sich auf Geräte in einer speziell eingerichteten Testumgebung. Alle Geräte, die in diesem Dokument benutzt wurden, begannen mit einer gelöschten (Nichterfüllungs) Konfiguration. Wenn Ihr Netzwerk in Betrieb ist, stellen Sie sicher, dass Sie die möglichen Auswirkungen aller Befehle kennen.
Führen Sie vor der Implementierung von SSH zunächst einen Authentifizierungstest ohne SSH durch, um sicherzustellen, dass eine Authentifizierung beim Router "Carter" möglich ist. Die Authentifizierung kann über einen lokalen Benutzernamen mit zugehörigem Kennwort oder über einen AAA-Server (Authentication, Authorization and Accounting) mit TACACs+ oder RADIUS erfolgen. (Eine Authentifizierung über das Line-Kennwort wird von SSH nicht unterstützt.) Das Beispiel unten zeigt eine lokale Authentifizierung, bei der mit dem Benutzernamen „cisco“ und dem Kennwort „cisco“ eine Telnet-Verbindung zum Router hergestellt werden kann.
Anmerkung: In diesem Dokument wird vty verwendet, um den Typ des virtuellen Terminals anzugeben.
!--- 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-model
username cisco password 0 cisco
line vty 0 4
transport input telnet
!--- Instead of aaa new-model, you can use the login local command.
Für einen Authentifizierungstest mit SSH müssen Sie die im obigen Beispiel verwendeten Anweisungen so ergänzen, dass SSH auf „Carter“ aktiviert wird. Anschließend müssen Sie die SSH-Verbindung vom PC und vom UNIX-System testen.
ip domain-name rtp.cisco.com
!--- Generate an SSH key to be used with SSH.
crypto key generate rsa
ip ssh time-out 60
ip ssh authentication-retries 2
An diesem Punkt muss der Befehl show crypto key mypubkey rsa den generierten Schlüssel zurückgeben. Nachdem Sie die SSH-Konfiguration hinzugefügt haben, müssen Sie testen, ob der PC und das UNIX-System Zugriff auf den Router haben.
Sollen nicht SSH-basierte Verbindungen unterbunden werden, müssen Sie den Befehl transport input ssh unter den Zeilen hinzufügen. Damit wird der Router ausschließlich auf SSH-Verbindungen beschränkt. Direkte (nicht SSH-basierte) Telnet-Verbindungen werden abgelehnt.
line vty 0 4
!--- Prevent non-SSH Telnets.
transport input ssh
Vergewissern Sie sich durch einen Test, dass nicht SSH-basierte Benutzer keine Telnet-Verbindung zum Router „Carter“ herstellen können.
Zur Aktivierung der SSH-Unterstützung auf einem Cisco IOS-Router sind vier Schritte erforderlich:
1. Konfigurieren Sie den Befehl hostname.
2. Konfigurieren Sie die DNS-Domäne.
3. Generieren Sie den SSH-Schlüssel.
4. Aktivieren Sie die Unterstützung für SSH-Übertragungen für den vty.
Soll ein anderes Gerät als SSH-Client für den Router fungieren, können Sie SSH auf einem zweiten Gerät namens "Reed" implementieren. Die beiden Geräte befinden sich dann in einer Client-Server-Konfiguration, in der „Carter“ der Server und „Reed“ der Client ist. Zur Konfiguration des SSH-Client in Cisco IOS auf "Reed" gehen Sie genauso vor wie zur Konfiguration des SSH-Servers auf "Carter".
!--- Step 1: Configure the hostname if you have not previously done so.
hostname carter
!--- 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-model
username cisco password 0 cisco
!--- Step 2: Configure the DNS domain of the router.
ip domain-name rtp.cisco.com
!--- Step 3: Generate an SSH key to be used with SSH.
crypto key generate rsa
ip ssh time-out 60
ip ssh authentication-retries 2
!--- Step 4: By default the vty transport is Telnet. In this case, Telnet is disabled and only SSH is supported.
line vty 0 4
transport input ssh
!--- Instead of aaa new-model, you can use the login local command.
Führen Sie als Test den folgenden Befehl aus, um eine SSH-Verbindung vom Cisco IOS-SSH-Client (Reed) zum Cisco IOS-SSH-Server (Carter) zu öffnen:
ssh -v 2 -c aes256-cbc -m hmac-sha1-160 -l cisco 10.31.1.99
Gehen Sie wie folgt vor, um den SSH-Server so zu konfigurieren, dass eine RSA-basierte Authentifizierung durchgeführt wird:
1. Geben Sie den Host-Namen an.
Router(config)#hostname
2. Legen Sie einen Standard-Domänennamen fest.
Router(config)#ip domain-name
3. Generieren Sie RSA-Schlüsselpaare.
Router(config)#crypto key generate rsa
4. Konfigurieren Sie die SSH-RSA-Schlüssel für die Benutzerauthentifizierung und die Serverauthentifizierung.
Router(config)#ip ssh pubkey-chain
5. Konfigurieren Sie den SSH-Benutzernamen.
Router(conf-ssh-pubkey)#username
6. Geben Sie den öffentlichen RSA-Schlüssel des Remote-Peer an.
Router(conf-ssh-pubkey-user)#key-string
7. Geben Sie Typ und Version des SSH-Schlüssels an. (Dieser Schritt ist optional.)
Router(conf-ssh-pubkey-data)#key-hash ssh-rsa
8. Beenden Sie den aktuellen Modus, und wechseln Sie zurück in den privilegierten EXEC-Modus.
Router(conf-ssh-pubkey-data)#end
Muss eine ausgehende Authentifizierung über ein SSH-Terminal eingerichtet werden, können Sie SSH für ausgehende Reverse-Telnet-Verbindungen über das Gerät "Carter" konfigurieren, das als Kommunikationsserver für das Gerät "Philly" fungiert. Testen Sie die Funktion anschließend.
ip ssh port 2001 rotary 1
line 1 16
no exec
rotary 1
transport input ssh
exec-timeout 0 0
modem InOut
stopbits 1
Wenn „Philly“ an Port 2 von „Carter“ angebunden ist, können Sie mit dem folgenden Befehl eine SSH-Verbindung von „Reed“ über „Carter“ zu „Philly“ konfigurieren:
ssh -v 2 -c aes256-cbc -m hmac-shal-160 -p 2002 10.31.1.99
Unter Solaris können Sie diesen Befehl verwenden:
ssh -c 3des -p 2002 -x -v 10.13.1.99
Nehmen wir an, Sie müssen SSH-Netzwerkverbindungen auf ein bestimmtes Subnetzwerk beschränken. Dabei sollen alle übrigen SSH-Verbindungsversuche von IP-Adressen außerhalb des Subnetzwerks verworfen werden.
Gehen Sie dazu wie folgt vor:
Unten sehen Sie eine Beispielkonfiguration. In diesem Beispiel werden ausschließlich SSH-Zugriffe auf das Subnetz „10.10.10.0 255.255.255.0“ zugelassen. Alle anderen Zugriffsversuche werden abgelehnt.
Router(config)#access-list 23 permit 10.10.10.0 0.0.0.255
Router(config)#line vty 5 15
Router(config-line)#transport input ssh
Router(config-line)#access-class 23 in
Router(config-line)#exit
Anmerkung: Das gleiche Verfahren zum Sperren des SSH-Zugriffs wird auch für Switch-Plattformen verwendet.
carter(config)#ip ssh version 2
Die Ausgabe des Befehlsbanner variiert jeweils bei Telnet-Verbindungen und den verschiedenen Arten von SSH-Verbindungen. In der Tabelle unten ist die Funktionsweise der Optionen des Befehls banner bei Verwendung der einzelnen Verbindungstypen erläutert.
Optionen des Befehls „banner“ |
Telnet |
SSHv2 |
Banner-Protokoll |
Wird vor der Anmeldung beim Gerät angezeigt. |
Wird vor der Anmeldung beim Gerät angezeigt. |
banner motd |
Wird vor der Anmeldung beim Gerät angezeigt. |
Wird nach der Anmeldung beim Gerät angezeigt. |
banner exec |
Wird nach der Anmeldung beim Gerät angezeigt. |
Wird nach der Anmeldung beim Gerät angezeigt. |
Anmerkung: Die SSH-Version 1 wird nicht mehr empfohlen.
SSH Version 2 unterstützt das Anmeldebanner. Das Anmeldebanner wird angezeigt, sobald der SSH-Client bei der Initiierung der SSH-Sitzung mit dem Cisco Router den Benutzernamen sendet. Beispielsweise wird das Anmeldebanner angezeigt, wenn der Secure Shell-SSH-Client verwendet wird. Wird der PuTTY-SSH-Client verwendet, wird das Anmeldebanner nicht angezeigt. Dies liegt daran, dass SSH den Benutzernamen standardmäßig sendet, PuTTY jedoch nicht.
Der SSH-Client benötigt den Benutzernamen, um die Verbindung zum SSH-fähigen Gerät zu initiieren. Die Schaltfläche "Connect" wird erst aktiviert, wenn Sie den Host-Namen und den Benutzernamen eingeben. Diese Screenshot zeigt, dass das Anmeldebanner angezeigt wird, wenn SSH eine Verbindung zum Router herstellt. Das Banner fordert den Benutzer dann zur Eingabe eines Kennworts auf.
Der PuTTY-Client benötigt keinen Benutzernamen, um die SSH-Verbindung zum Router zu initiieren. Im Screenshot unten sehen Sie, wie sich der PuTTY-Client mit dem Router verbindet und zur Eingabe des Benutzernamens und des Kennworts auffordert. Das Anmeldebanner wird nicht angezeigt.
Diese Screenshot zeigt, dass das Anmeldebanner angezeigt wird, wenn PuTTY so konfiguriert ist, dass der Benutzername an den Router gesendet wird.
Lesen Sie sich das Dokument Important Information on Debug Commands (Wichtige Informationen zu Debug-Befehlen) durch, bevor Sie die hier beschriebenen Befehle des Typs debug ausführen. Einige Befehle des Typs show werden vom Tool Output Interpreter unterstützt (nur für registrierte Kunden), mit dem sich Analysen der Ausgabe von Befehlen des Typs show abrufen lassen.
debug ip ssh Zeigt Fehlersuchemeldungen für SSH an.
show ssh Zeigt den Status von SSH-Serververbindungen an.
carter#show ssh
Connection Version Encryption State Username
0 2.0 DES Session started cisco
show ip ssh Zeigt Versions- und Konfigurationsdaten zu SSH an.
carter#show ip ssh
SSH Enabled - version 2.0
Authentication timeout: 120 secs; Authentication retries: 3
00:23:20: SSH0: starting SSH control process
00:23:20: SSH0: sent protocol version id SSH-2.0-Cisco-1.25
00:23:20: SSH0: protocol version id is - SSH-2.0-1.2.26
00:23:20: SSH0: SSH_SMSG_PUBLIC_KEY msg
00:23:21: SSH0: SSH_CMSG_SESSION_KEY msg - length 112, type 0x03
00:23:21: SSH: RSA decrypt started
00:23:21: SSH: RSA decrypt finished
00:23:21: SSH: RSA decrypt started
00:23:21: SSH: RSA decrypt finished
00:23:21: SSH0: sending encryption confirmation
00:23:21: SSH0: keys exchanged and encryption on
00:23:21: SSH0: SSH_CMSG_USER message received
00:23:21: SSH0: authentication request for userid cisco
00:23:21: SSH0: SSH_SMSG_FAILURE message sent
00:23:23: SSH0: SSH_CMSG_AUTH_PASSWORD message received
00:23:23: SSH0: authentication successful for cisco
00:23:23: SSH0: requesting TTY
00:23:23: SSH0: setting TTY - requested: length 24, width 80; set:
length 24, width 80
00:23:23: SSH0: invalid request - 0x22
00:23:23: SSH0: SSH_CMSG_EXEC_SHELL message received
00:23:23: SSH0: starting shell for vty
Anmerkung: Dies ist die Solaris-Maschinenausgabe.
rtp-evergreen.rtp.cisco.com#ssh -c 3des -l cisco -v 10.31.1.99
rtp-evergreen#/opt/CISssh/bin/ssh -c 3des -l cisco -v 10.13.1.99
SSH Version 1.2.26 [sparc-sun-solaris2.5.1], protocol version 1.5.
Compiled with RSAREF.
rtp-evergreen: Reading configuration data /opt/CISssh/etc/ssh_config
rtp-evergreen: ssh_connect: getuid 0 geteuid 0 anon 0
rtp-evergreen: Allocated local port 1023.
rtp-evergreen: Connecting to 10.13.1.99 port 22.
rtp-evergreen: Connection established.
rtp-evergreen: Remote protocol version 2.0,
remote software version Cisco-1.25
rtp-evergreen: Waiting for server public key.
rtp-evergreen: Received server public key (768 bits)
and host key (512 bits).
rtp-evergreen: Host '10.13.1.99' is known and matches the host key.
rtp-evergreen: Initializing random; seed file //.ssh/random_seed
rtp-evergreen: Encryption type: 3des
rtp-evergreen: Sent encrypted session key.
rtp-evergreen: Installing crc compensation attack detector.
rtp-evergreen: Received encrypted confirmation.
rtp-evergreen: Doing password authentication.
cisco@10.13.1.99's password:
rtp-evergreen: Requesting pty.
rtp-evergreen: Failed to get local xauth data.
rtp-evergreen: Requesting X11 forwarding with authentication spoofing.
Warning: Remote host denied X11 forwarding, perhaps xauth program
could not be run on the server side.
rtp-evergreen: Requesting shell.
rtp-evergreen: Entering interactive session.
In diesen Abschnitten finden Sie Beispielausgaben der Fehlersuche bei verschiedenen fehlerhaften Konfigurationen.
00:26:51: SSH0: starting SSH control process
00:26:51: SSH0: sent protocol version id SSH-2.0-Cisco-1.25
00:26:52: SSH0: protocol version id is - SSH-2.0-1.2.26
00:26:52: SSH0: SSH_SMSG_PUBLIC_KEY msg
00:26:52: SSH0: SSH_CMSG_SESSION_KEY msg - length 112, type 0x03
00:26:52: SSH: RSA decrypt started
00:26:52: SSH: RSA decrypt finished
00:26:52: SSH: RSA decrypt started
00:26:52: SSH: RSA decrypt finished
00:26:52: SSH0: sending encryption confirmation
00:26:52: SSH0: keys exchanged and encryption on
00:26:52: SSH0: SSH_CMSG_USER message received
00:26:52: SSH0: authentication request for userid cisco
00:26:52: SSH0: SSH_SMSG_FAILURE message sent
00:26:54: SSH0: SSH_CMSG_AUTH_PASSWORD message received
00:26:54: SSH0: password authentication failed for cisco
00:26:54: SSH0: SSH_SMSG_FAILURE message sent
00:26:54: SSH0: authentication failed for cisco (code=7)
00:26:54: SSH0: Session disconnected - error 0x07
00:39:26: SSH0: starting SSH control process
00:39:26: SSH0: sent protocol version id SSH-2.0-Cisco-1.25
00:39:26: SSH0: protocol version id is - SSH-2.0-W1.0
00:39:26: SSH0: SSH_SMSG_PUBLIC_KEY msg
00:39:26: SSH0: SSH_CMSG_SESSION_KEY msg - length 112, type 0x03
00:39:26: SSH0: Session disconnected - error 0x20
Diese Fehlermeldung kann durch eine Änderung des Domänennamens oder Hostnamens ausgelöst werden. Verwenden Sie diese Problemumgehungen:
Nullen Sie die RSA-Schlüssel, und generieren Sie die Schlüssel neu.
crypto key zeroize rsa label key_name
crypto key generate rsa label key_name modulus key_size
Falls die oben genannte Problemumgehung nicht funktioniert, versuchen Sie Folgendes:
Nullen Sie alle RSA-Schlüssel.
Laden Sie das Gerät neu.
Erstellen Sie neue benannte Schlüssel für SSH.
Werden Ihre SSH-Konfigurationsbefehle als ungültige Befehle zurückgewiesen, wurde das RSA-Schlüsselpaar für den Router nicht korrekt generiert. Stellen Sie sicher, dass Sie einen Host-Namen und eine Domäne angegeben haben. Führen Sie dann den Befehl crypto key generate rsa aus, um ein RSA-Schlüsselpaar zu generieren und den SSH-Server zu aktivieren.
Bei der Konfiguration von RSA-Schlüsselpaaren werden möglicherweise folgende Fehlermeldungen angezeigt:
"Kein Hostname angegeben".
Sie müssen mit dem globalen Konfigurationsbefehl hostname einen Host-Namen für den Router konfigurieren.
"Keine Domäne angegeben".
Sie müssen mit dem globalen Konfigurationsbefehl ip domain-name eine Host-Domäne für den Router konfigurieren.
Die zulässige Anzahl von SSH-Verbindungen ist auf die für den Router maximal vty
konfigurierte Anzahl von beschränkt. Jede SSH-Verbindung verwendet eine vty
Ressource.
SSH verwendet zur Benutzerauthentifizierung entweder das lokale Sicherheitsprotokoll oder das Sicherheitsprotokoll, das per AAA auf dem Router konfiguriert wurde. Wenn Sie AAA konfigurieren, müssen Sie sicherstellen, dass die Konsole nicht unter AAA ausgeführt wird. Dazu müssen Sie AAA im globalen Konfigurationsmodus mithilfe eines Keyword auf der Konsole deaktivieren.
No SSH server connections running:
carter#show ssh
%No SSHv2 server connections running.
Diese Ausgabe deutet darauf hin, dass der SSH-Server deaktiviert ist oder nicht korrekt aktiviert wurde. Falls Sie SSH bereits konfiguriert haben, empfiehlt sich eine Neukonfiguration des SSH-Servers auf dem Gerät. Führen Sie die im Folgenden genannten Schritte aus, um den SSH-Server auf dem Gerät neu zu konfigurieren.
carter(config)#crypto key zeroize rsa
Anmerkung: Es ist wichtig, Schlüsselpaare mit einer Bitgröße von mindestens 768 zu generieren, wenn Sie SSH v2 aktivieren.
Vorsicht: Dieser Befehl kann nach dem Speichern der Konfiguration nicht mehr rückgängig gemacht werden. Nachdem die RSA-Schlüssel gelöscht wurden, können Sie außerdem weder Zertifikate noch die Zertifizierungsstelle verwenden und auch nicht am Zertifikataustausch mit anderen IPSec-Peers (IP Security) teilnehmen. Sie müssen zuerst zur Neukonfiguration der Zertifizierungsstellen-Interoperabilität die RSA-Schlüssel neu generieren, das Zertifikat der Zertifizierungsstelle abrufen und Ihr eigenes Zertifikat erneut anfordern.
2. Konfigurieren Sie den Host-Namen und den Domänennamen des Geräts neu.
carter(config)#hostname hostname
carter(config)#ip domain-name domainname
3.Generieren Sie RSA-Schlüsselpaare für Ihren Router. Dadurch wird SSH automatisch aktiviert.
carter(config)#crypto key generate rsa
Anmerkung: Weitere Informationen zur Verwendung dieses Befehls finden Sie unter crypto key generate rsa - Cisco IOS Security Command Reference, Release 12.3.
Anmerkung: Sie können die "SSH2 0: Unexpected mesg type received" (Unerwarteter Mesg-Typ empfangen) ist eine Fehlermeldung, die auf ein vom Router nicht verständliches Paket zurückzuführen ist. Vergrößern Sie bei der Generierung der RSA-Schlüssel für SSH die Schlüssellänge, um dieses Problem zu beheben.
4. Konfigurieren Sie den SSH-Server.
5. Wenn Sie SSH auf einem Cisco Router/Switch aktivieren und den Router/Switch als SSH-Server konfigurieren möchten, müssen Sie SSH-Parameter konfigurieren. Wenn Sie keine SSH-Parameter konfigurieren, werden die Standardwerte verwendet.
ip ssh {[timeout seconds] | [authentication-retries integer]}
carter(config)# ip ssh
Überarbeitung | Veröffentlichungsdatum | Kommentare |
---|---|---|
4.0 |
06-Dec-2024 |
Aktualisierte Branding-Anforderungen und Formatierung. |
3.0 |
09-Aug-2023 |
Aktualisiert Rechtlicher Haftungsausschluss, Alternativer Text und Formatierung. |
1.0 |
10-Sep-2001 |
Erstveröffentlichung |