Ansible ssh sleutelpaar

Nu we ons verdiepen in de wereld van automatisering, met name in serverbeheer en -orkestratie, is het belangrijk om de verschillende methoden te begrijpen die we kunnen gebruiken om veilig toegang te krijgen tot onze externe machines en deze te beheren. Een van de fundamentele componenten van veilig extern beheer zijn SSH-sleutelparen.

Samenvatting – Wat is SSH?

SSH, wat staat voor Secure Shell, is een cryptografisch netwerkprotocol dat veilige externe aanmelding en uitvoering van opdrachten op een externe machine mogelijk maakt. Velen van jullie zijn misschien al bekend met het gebruik van SSH om toegang te krijgen tot externe servers met behulp van een gebruikersnaam en wachtwoord. Maar er is eenveiligere en efficiëntere methode: keypair-authenticatie.

Sleutelparen begrijpen

Sleutelparen bestaan ​​uit twee delen:

  1. Privésleutel: Dit is de sleutel die u geheim houdt, vaak veilig opgeslagen op uw computer of in een beschermd opslagmechanisme. Zie het als een digitale handtekening.
  2. Openbare sleutel: Zoals de naam al doet vermoeden, kan deze sleutel met de wereld worden gedeeld. Het wordt doorgaans toegevoegd aan externe servers om toegang te verlenen aan iedereen die de bijbehorende privésleutel bezit.

Wanneer u probeert verbinding te maken met een server, gebruikt uw SSH-client de privésleutel om een ​​digitale handtekening te produceren. De server verifieert het met de openbare sleutel en als deze overeenkomt, wordt toegang verleend.

Waarom sleutelparen gebruiken in automatisering?

  • Beveiliging: Sterke cryptografische principes liggen ten grondslag aan SSH-sleutelparen, waardoor ze een robuust authenticatiemechanisme zijn, vooral in vergelijking met traditionele wachtwoorden.
  • Automatiseringsvriendelijk: Een van de belangrijkste voordelen van het gebruik van SSH-sleutels is dat ze wachtwoordloze authenticatie mogelijk maken. Dit is vooral handig bij automatisering, waar handmatige invoer van wachtwoorden workflows kan verstoren of vertragen.
  • Schaalbaarheid: Stel je voor dat je honderden of zelfs duizenden servers beheert. Het distribueren en beheren van openbare SSH-sleutels kan veel schaalbaarder zijn dan individuele wachtwoorden.
  • Granulaire toegangscontrole: U kunt uw servers configureren om verschillende toegangsniveaus te verlenen op basis van welke sleutel wordt gebruikt om te authenticeren. Bijvoorbeeld, één sleutel kan root-toegang hebben, terwijl een andere sleutel alleen toegang tot het systeem kan krijgen met beperkte privileges.

  • Verminderde blootstelling van gevoelige gegevens: Bij het gebruik van wachtwoordauthenticatie is er altijd een risico dat het wachtwoord kan worden blootgesteld, vooral als het wordt verzonden via een onveilige verbinding of als de externe server is gecompromitteerd. SSH-sleutels elimineren dit risico, omdat de privésleutel op de clientmachine blijft en nooit wordt verzonden.

Real-World-applicatie: Ansible

Ansible is een van de toonaangevende automatiseringstools in de IT-wereld. Het kan systemen configureren, software implementeren en geavanceerdere IT-taken orkestreren. Ansible gebruikt SSH om verbinding te maken en opdrachten uit te voeren op externe servers. Door keypair-authenticatie in te stellen, biedt u Ansible naadloze toegang om servers efficiënt en veilig te beheren.

Een keypair genereren en gebruiken

Voer op uw lokale machine (of de machine die wordt gebruikt als het Ansible-besturingsknooppunt) de volgende opdracht uit:

ssh-keygen -t rsa -b 4096

Hiermee wordt een keypair gegenereerd en opgeslagen in de homedirectory van de gebruiker in de verborgen .ssh-directory. De volgende sleutels worden standaard gegenereerd:

~/.ssh/id_rsa # Dit is de privésleutel, deze BLIJFT ALTIJD op het apparaat staan
~/.ssh/id_rsa.pub # Dit is de openbare sleutel, dit deel wordt gekopieerd naar externe servers

De openbare sleutel distribueren

Om Ansible verbinding te laten maken met externe hosts, moet u de gegenereerde openbare sleutel (id_rsa.pub) toevoegen aan het bestand ~/.ssh/authorized_keys op elke doelhost.

U kunt het bestand handmatig bewerken en uw openbare sleutel op een nieuwe regel in het bestand plakken.

nano ~/.ssh/authorized_keys