Inleiding
In dit document wordt beschreven hoe u Secure Shell (SSH) kunt configureren en debuggen op routers of switches van Cisco die Cisco IOS®-software gebruiken.
Voorwaarden
Vereisten
De gebruikte Cisco IOS-image moet een k9 (crypto)-image zijn om SSH te ondersteunen. Bijvoorbeeld, c3750e-universalk9-tar.122-35.SE5.tar is een k9-afbeelding (crypto).
Gebruikte componenten
De informatie in dit document is gebaseerd op Cisco IOS 3600-software (C3640-IK9S-M), release 12.2(2)T1.
SSH werd geïntroduceerd in de volgende Cisco IOS-platforms en ‑images:
De informatie in dit document is gebaseerd op de apparaten in een specifieke laboratoriumomgeving. Alle apparaten die in dit document worden beschreven, hadden een opgeschoonde (standaard)configuratie. Als uw netwerk live is, moet u zorgen dat u de potentiële impact van elke opdracht begrijpt.
SSH v2-netwerkdiagram

Verificatie testen
Verificatietest zonder SSH
Test de verificatie eerst zonder SSH om er zeker van te zijn dat verificatie werkt met de router Carter voordat u SSH toevoegt. Verificatie kan worden uitgevoerd met een lokale gebruikersnaam en wachtwoord, of met een AAA-server (verificatie, autorisatie en accounting) met TACACS+ of RADIUS. (Verificatie met het lijnwachtwoord is niet mogelijk bij SSH.) Dit voorbeeld toont lokale verificatie, waarmee u met Telnet toegang krijgt tot de router met gebruikersnaam 'cisco' en wachtwoord 'cisco'.
Opmerking: in dit document wordt vty gebruikt om virtueel terminaltype aan te geven.
!--- 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.
Verificatietest met SSH
Om verificatie met SSH te testen, moet u de vorige instructies toevoegen om SSH in te schakelen op de router Carter en SSH te testen vanaf pc's en UNIX-stations.
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
De opdracht show crypto key mypubkey rsa moet nu de gegenereerde sleutel tonen. Nadat u de SSH-configuratie heeft toegevoegd, kunt u testen of u de router kunt benaderen vanaf pc’s en UNIX-stations.
Optionele configuratiesets
Niet-SSH-verbindingen voorkomen
Als u niet-SSH-verbindingen wilt voorkomen, voegt u onder de regels de opdracht transport input ssh toe om de router te beperken tot alleen SSH-verbindingen. Normale Telnet-verbindingen (niet-SSH) worden geweigerd.
line vty 0 4
!--- Prevent non-SSH Telnets.
transport input ssh
Test om er zeker van te zijn dat niet-SSH-gebruikers geen toegang via Telnet kunnen krijgen tot de router Carter.
Een Cisco IOS-router of -Switch instellen als SSH-client
Er zijn vier stappen vereist om SSH-ondersteuning in te schakelen op een Cisco IOS-router:
1. Configureer de opdracht hostname.
2. Configureer het DNS-domein.
3. Genereer de SSH-sleutel.
4. Schakel ondersteuning van SSH-transport in voor de vty.
Als u wilt dat één apparaat fungeert als SSH-client voor het andere apparaat, kunt u SSH toevoegen aan een tweede apparaat met de naam Reed. Hiermee worden deze apparaten in een client/server-combinatie gezet, waarbij Carter fungeert als de server en Reed als de client. De SSH-clientconfiguratie van Cisco IOS op Reed is gelijk aan de configuratie die vereist is voor de SSH-serverconfiguratie op 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.
Geef SSH de volgende opdracht van Cisco IOS SSH-client (Reed) naar Cisco IOS SSH-server (Carter) om dit te testen:
ssh -v 2 -c aes256-cbc -m hmac-sha1-160 -l cisco 10.31.1.99
Een Cisco IOS-router instellen als een SSH-server die RSA-gebaseerde gebruikersverificatie uitvoert
Voer de volgende stappen uit om de SSH-server zodanig te configureren dat deze op RSA gebaseerde verificatie uitvoert.
1. Geef de hostnaam op.
Router(config)#hostname
2. Definieer een standaarddomeinnaam.
Router(config)#ip domain-name
3. Genereer RSA-sleutelparen.
Router(config)#crypto key generate rsa
4. Configureer SSH-RSA-sleutels voor verificatie van gebruikers en de server.
Router(config)#ip ssh pubkey-chain
5. Configureer de SSH-gebruikersnaam.
Router(conf-ssh-pubkey)#username
6. Geef de openbare RSA-sleutel van de externe peer op.
Router(conf-ssh-pubkey-user)#key-string
7. Geef het type en de versie van de SSH-sleutel op. (Deze stap is optioneel.)
Router(conf-ssh-pubkey-data)#key-hash ssh-rsa
8. Sluit de huidige modus af en keer terug naar de modus Privileged EXEC.
Router(conf-ssh-pubkey-data)#end
Toegang via SSH-terminallijn toevoegen
Als verificatie van de uitgaande SSH-terminallijn nodig is, kunt u SSH configureren en testen voor uitgaande omgekeerde Telnet-verbindingen via Carter die fungeert als communicatieserver voor Philly.
ip ssh port 2001 rotary 1
line 1 16
no exec
rotary 1
transport input ssh
exec-timeout 0 0
modem InOut
stopbits 1
Als Philly is verbonden met de Carter-poort 2, kunt u SSH vanaf Reed via Carter naar Philly configureren met de volgende opdracht:
ssh -v 2 -c aes256-cbc -m hmac-shal-160 -p 2002 10.31.1.99
U kunt de volgende Solaris-opdracht gebruiken:
ssh -c 3des -p 2002 -x -v 10.13.1.99
SSH-toegang tot een subnet beperken
U moet SSH-connectiviteit met een specifiek subnetwerk beperken wanneer alle andere SSH-pogingen van IP-adressen buiten het subnetwerk worden afgewezen.
U kunt de volgende stappen uitvoeren om hetzelfde te doen:
- Definieer een toegangslijst die het verkeer afkomstig van dat specifieke subnetwerk toelaat.
- Beperk toegang tot de VTY-lijninterface met de opdracht access-class.
Hierna volgt een configuratievoorbeeld. In dit voorbeeld is alleen SSH-toegang tot het subnet 10.10.10.0 met subnetmasker 255.255.255.0 toegestaan; toegang tot andere adressen wordt geweigerd.
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
Opmerking: de procedure voor het beperken van de SSH-toegang wordt ook gebruikt voor switchplatforms.
De SSH-versie 2 configureren
carter(config)#ip ssh version 2
Variaties in output van opdracht banner
De output van de opdracht banner verschilt tussen Telnet- en verschillende versies van SSH-verbindingen. In deze tabel wordt aangegeven hoe de verschillende opties van de opdracht banner werken bij verschillende typen verbindingen.
Banneropdrachtopties
|
Telnet
|
SSH v2
|
bannerlog
|
Wordt weergegeven voordat wordt aangemeld op het apparaat.
|
Wordt weergegeven voordat wordt aangemeld op het apparaat.
|
banner motd
|
Wordt weergegeven voordat wordt aangemeld op het apparaat.
|
Wordt weergegeven nadat is aangemeld op het apparaat.
|
banner exec
|
Wordt weergegeven nadat is aangemeld op het apparaat.
|
Wordt weergegeven nadat is aangemeld op het apparaat.
|
Opmerking: SSH-versie 1 wordt niet langer aanbevolen.
Kan de inlogbanner niet weergeven
SSH-versie 2 ondersteunt de aanmeldingsbanner. Wanneer de SSH-sessie wordt gestart met de Cisco-router, wordt de aanmeldingsbanner weergegeven als de SSH-client de gebruikersnaam verzendt. Wanneer bijvoorbeeld de Secure Shell-opdracht 'ssh client' wordt gebruikt, wordt de aanmeldingsbanner getoond. Wanneer de PuTTY-opdracht 'ssh client' wordt gebruikt, wordt de aanmeldingsbanner niet getoond. Dat komt doordat SSH standaard de gebruikersnaam verzendt en PuTTY niet.
De SSH-client heeft de gebruikersnaam nodig om de verbinding met het apparaat met ingeschakelde SSH te initiëren. De knop om te verbinden is niet actief wanneer u de hostnaam en gebruikersnaam niet opgeeft. Deze schermafbeelding laat zien dat de inlogbanner wordt weergegeven wanneer SSH verbinding maakt met de router. De banner vraagt vervolgens om een wachtwoord.
Banner vraagt om een wachtwoord
De PuTTY-client heeft de gebruikersnaam niet nodig om de SSH-verbinding met de router te initiëren. In deze schermafbeelding is te zien dat de PuTTY-client verbinding maakt met de router en dat wordt gevraagd naar gebruikersnaam en wachtwoord. De aanmeldingsbanner wordt niet getoond.
SSH-verbinding met router
Deze schermafbeelding laat zien dat de inlogbanner wordt weergegeven wanneer PuTTY is geconfigureerd om de gebruikersnaam naar de router te sturen.
Gebruikersnaam naar router verzenden
Opdrachten met debug en show
Voordat u de hier beschreven opdrachten met debug opgeeft, moet u de TechNote Important Information on Debug Commands (Belangrijke informatie over opdrachten met debug) raadplegen. Bepaalde opdrachten met show worden ondersteund door de tool Output Interpreter (alleen voor geregistreerde klanten). Hiermee kunt u een analyse van de output van opdrachten met show genereren.
carter#show ssh
Connection Version Encryption State Username
0 2.0 DES Session started cisco
carter#show ip ssh
SSH Enabled - version 2.0
Authentication timeout: 120 secs; Authentication retries: 3
Voorbeeld van output van foutopsporing
Foutopsporing op router
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
Foutopsporing op server
Opmerking: dit is machine-output van Solaris.
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.
Onjuiste configuraties
De volgende secties bevatten voorbeelden van output van foutopsporing bij diverse onjuiste configuraties.
SSH van een SSH-client niet gecompileerd met Data Encryption Standard (DES)
Onjuist wachtwoord
Foutopsporing op router
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
SSH-client stuurt niet-ondersteund algoritme (Blowfish)
Foutopsporing op router
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
Fout '%SSH-3-PRIVATEKEY: Kan RSA privésleutel niet ophalen voor' ophalen
Een wijziging in de domeinnaam of hostnaam kan deze foutmelding activeren. Gebruik deze tijdelijke oplossingen:
crypto key zeroize rsa label key_name
crypto key generate rsa label key_name modulus key_size
Tips
-
Als de SSH-configuratieopdrachten worden afgewezen als ongeldig, is er geen RSA-sleutelpaar voor de router gegenereerd. Zorg ervoor dat u een hostnaam en domein opgeeft. Gebruik vervolgens de opdracht crypto key generate rsa om een RSA-sleutelpaar te genereren en de SSH-server in te schakelen.
-
Wanneer u het RSA-sleutelpaar configureert, kunnen de volgende foutmeldingen worden getoond:
-
"Geen hostnaam opgegeven"
U moet de globale configuratie-opdracht hostname gebruiken om een hostnaam voor de router te configureren.
-
"Geen domein opgegeven".
U moet de globale configuratie-opdracht ip domain-name gebruiken om een hostdomein voor de router te configureren.
-
Het aantal toegestane SSH-verbindingen is beperkt tot het maximale aantal vty
geconfigureerde verbindingen voor de router. Elke SSH-verbinding maakt gebruik van een vty
bron.
-
SSH gebruikt lokale security of het security-protocol dat is geconfigureerd via AAA op de router voor gebruikersverificatie. Wanneer u AAA configureert, moet u ervoor zorgen dat de console niet wordt uitgevoerd onder AAA. Pas een trefwoord toe in de globale configuratiemodus om AAA op de console uit te schakelen.
-
No SSH server connections running:
carter#show ssh
%No SSHv2 server connections running.
Deze output geeft aan dat de SSH-server is uitgeschakeld of niet goed is ingeschakeld. Als u SSH al heeft geconfigureerd, is het raadzaam de SSH-server van het apparaat opnieuw te configureren. Voer de volgende stappen uit om de SSH-server van het apparaat opnieuw te configureren.
- Verwijder de RSA-sleutelparen. Nadat de RSA-sleutelparen zijn verwijderd, wordt de SSH-server automatisch uitgeschakeld.
carter(config)#crypto key zeroize rsa
Opmerking: het is van belang sleutelparen te genereren van ten minste 768 bytes bij inschakeling van SSH v2.
Let op: deze opdracht kan niet meer ongedaan worden gemaakt nadat u uw configuratie hebt opgeslagen. Nadat RSA-sleutels zijn verwijderd, kunt u bovendien geen certificaten van de CA gebruiken of certificaten uitwisselen met andere IPSec-peers (IP Security), tenzij u de RSA-sleutels opnieuw genereert om CA-interoperabiliteit opnieuw te configureren, het CA-certificaat op te halen en uw eigen certificaat weer aan te vragen.
2. Configureer de hostnaam en domeinnaam van het apparaat opnieuw.
carter(config)#hostname hostname
carter(config)#ip domain-name domainname
3. Genereer RSA-sleutelparen voor uw router. Hiermee wordt SSH automatisch ingeschakeld.
carter(config)#crypto key generate rsa
Opmerking: raadpleeg crypto key generate rsa - Cisco IOS Security Command Reference, Release 12.3 voor meer informatie over deze opdracht.
Opmerking: U kunt de foutmelding "SSH2 0: Onverwacht berichttype ontvangen" ontvangen vanwege een pakket dat is ontvangen en dat niet begrijpelijk is voor de router. Vergroot de sleutellengte tijdens het genereren van RSA-sleutels voor SSH om dit probleem op te lossen.
4. Configureer de SSH-server.
5. Om een Cisco-router/switch te configureren en in te schakelen als SSH-server moet u SSH-parameters configureren. Als u de SSH-parameters niet configureert, worden de standaardwaarden gebruikt.
ip ssh {[timeout seconds] | [authentication-retries integer]}
carter(config)# ip ssh
Gerelateerde informatie