Het Beheren van een SSH Configuratie Bestand in Windows en Linux

0
195

Je SSH config bestand laat u toe om een specifieke instellingen definiëren voor elke SSH host die maakt verbinding met de host wordt veel gemakkelijker. Door het definiëren van veel van deze gemeenschappelijke, of ongewoon, eigenschappen van het bestand, het elimineert de noodzaak om te onthouden deze parameter instellen dat elke keer een verbinding nodig is.

Het definiëren van een SSH-Verbinding

Als het bestand ~/.ssh/config niet bestaat, misschien ga je gang en maak dit nu. Meestal bestaat dit bestand in een .ssh “verborgen” directory, verborgen, alleen omdat de meeste besturingssystemen worden niet weergegeven mappen voorafgegaan door een .. Ook deze map bevindt zich meestal in de home-directory, of de home directory van de gebruiker met ssh, vandaar de ~ notatie, die de home directory.

Het is belangrijk om een oogje te houden op machtigingen binnen de .ssh map. De meeste SSH cliënten de bestanden wilt modus 600 in deze map. Als verwijzen naar deze map van de Windows-Subsysteem voor Linux, moet u ervoor zorgen chmod 600 ~\.ssh\*

Dus, wat doet een eenvoudige SSH verbinding uitzien in dit dossier? Een voorbeeld van een eenvoudige configuratie is hieronder.

Host-mijn-ssh-host
Hostnaam 10.0.0.5
Poort 22
Gebruiker myuser

Zoals u kunt zien uit het bovenstaande configuratie, dit is ongeveer net zo basic als één kunt krijgen. In feite, kunt u het weglaten van de Haven als het niet strikt noodzakelijk is omdat de 22 is de standaard SSH poort. Door het definiëren van deze verbinding, op de commando-regel kunnen we gewoon het volgende doen.

ssh-mijn-ssh-host

De verbinding wordt meestal gevraagd om een wachtwoord, zoals een SSH verbinding mag niet worden opgeheven.

Publiek/Private Sleutels

Bijna elke SSH tutorial of installatiehandleiding zullen er meestal referentie publiek/private sleutels op een punt of een ander. Dit zijn de aanbevolen manier voor het instellen van een SSH verbinding. In plaats van een wachtwoord, dat kan worden gekraakt of geraden, het is noodzakelijk om daadwerkelijk verkrijgen van het key-bestand. Deze tutorial is niet in te gaan op het maken van degenen, dus laten we aannemen dat een set bestaat al en correct is ingesteld. Hoe vertellen we onze host configuration gebruik van dit bestand?

Host-mijn-ssh-host
Hostnaam 10.0.0.5
Poort 22
Gebruiker myuser
IdentityFile ~/.ssh/id_ed25519_myuser
IdentitiesOnly ja

Er zijn twee nieuwe commando ‘ s die we hebben geïntroduceerd. De IdentityFile en de IdentitiesOnly opdrachten. Eerst moeten we vertellen SSH waar de key-bestand, in dit geval hebben we het bestand opgeslagen in de .ssh directory (wees op uw hoede van rechten). Ten tweede, we hebben vastgesteld dat er een tag met de naam IdentitiesOnly. Dit zal vertellen SSH om niet te proberen elke identiteit bestand in die map, maar alleen de een is gedefinieerd. Standaard SSH zal lopen door en probeert elk bestand identiteit, tot hij de juiste. Vaak zal dit leiden tot een “Te veel verificatie mislukt voor gebruiker myuser” op de target server als er veel van identiteiten.

Complexe Configuraties

Er zijn vele scenario ‘ s die kunnen we in dit artikel behandelen, maar laten we gaan over een paar gewone en nuttige degenen.

ForwardAgent

Wat als je een scenario waar je geopend hebt een SSH verbinding naar een server, die vervolgens dient te maken voor een andere SSH verbinding naar een tweede server van dat oorspronkelijke doel-server? Je zou denken dat je nodig hebt om op te slaan van dezelfde SSH sleutels op die server te maken van deze volgende hop. Er is een opdracht, een toepasselijke naam ForwardAgent, die u toelaat om “vooruit” uw lokale toetsen naar de volgende server in de hop.

Host-mijn-ssh-host
Hostnaam 10.0.0.5
Poort 22
Gebruiker myuser
IdentityFile ~/.ssh/id_ed25519_myuser
IdentitiesOnly ja
ForwardAgent ja

ProxyJump

Vergelijkbaar met ForwardAgent, het is vaak nodig voor het openen van een secundaire SSH-verbinding rechtstreeks via een een eerste (of tweede) doel. Vaak is dit omdat een machine achter een firewall uitschakelen van het algemene internet, maar hebben een aansluiting om een “jump box”, dat vervolgens de mogelijkheid om een verbinding op de server achter een firewall. Vanaf SSH versie 7.3 en hoger, de ProxyJump opdracht kunt ons gemakkelijk bereiken.

Host-mijn-ssh-host
Hostnaam 10.0.0.5
Poort 22
Gebruiker myuser
IdentityFile ~/.ssh/id_ed25519_myuser
IdentitiesOnly ja
ForwardAgent ja
ProxyJump myuser@10.0.0.6:22,myuser2@10.0.0.7:10005

Zoals hierboven te zien is, zijn er twee servers hier. In eerste instantie, via de SSH verbinding zal gaan naar 10.0.0.5 maar dan meteen open een verbinding met 10.0.0.6, dan zal het uiteindelijk open een verbinding met een andere gebruiker en de poort naar 10.0.0.7.

SSH Proxy Tunnel

Wat als je de behoefte om een SOCKSv5 tunnel? Dit is heel eenvoudig met behulp van het config bestand. We introduceren drie nieuwe commando ‘ s hier, DynamicForward, ControlMaster, en ControlPath.

Host-mijn-ssh-host
Hostnaam 10.0.0.5
Poort 22
Gebruiker myuser
IdentityFile ~/.ssh/id_ed25519_myuser
IdentitiesOnly ja
DynamicForward 8080
ControlMaster auto
ControlPath ~/.ssh/%r@%h:%p

De DynamicForward opdracht is de poort die we zijn eigenlijk op zoek naar proxy over onze SSH-verbinding, zoals poort 8080. ControlMaster op auto is ingesteld, wat betekent dat als er een verbinding bestaat, gebruik dan dat, maar als er niet een nieuwe te maken. Tot slot, de ControlPath stelt de locatie van de werkelijke socket-bestand. In dit geval is het gebruik van de notatie van naamgeving van %r@%h:%p die komt overeen met myuser@10.0.0.5:22 in deze verbindingen geval.

Conclusie

Er is veel energie in de SSH Configuratie bestand. Veel meer complexe voorbeelden kunnen worden gedefinieerd, in aanvulling op het gemak van het definiëren van veel verschillende hosts in een enkele locatie. Door dit te doen, zijn niet alleen de host verbindingen goed gedocumenteerd, maar ze zorgen voor een snelle en gemakkelijke toegang op de commando-regel. Als u ervoor kiest om dit bestand onder versiebeheer, voegt u de mogelijkheid om een lopende geschiedenis van de gastheren en mogelijk bespaar jezelf een grote hoofdpijn in de toekomst. Zoals u kunt zien, de SSH configuratie bestand, is het definiëren van SSH host gemakkelijk!