Using PuTTYs plink Command to Automate SSH Actions on Windows

Summary

SSH is een veilige en handige methode voor het automatiseren van scripts op servers op afstand. Op UNIX en Linux machines is het instellen van SSH bijna triviaal; op Windows is het echter een grotere uitdaging. PuTTY’s “plink” commando kan gebruikt worden om SSH acties op Windows te automatiseren. “plink” heeft enkele specifieke initialisatievereisten op Windows machines om het bruikbaar te maken vanuit de DPX script interface. Dit artikel behandelt het gebruik van het Windows commando “plink”, dat deel uitmaakt van de PuTTY suite van utilities. Dit is niet bedoeld als een uitgebreid overzicht van het gebruik van “plink”. Het gaat specifiek over hoe je de benodigde host keys kunt activeren voor gebruik met de DPX script engine. “

Stap voor stap

PuTTY is een vrij verkrijgbare SSH-client van derden voor Windows-platforms. Op het moment van schrijven is PuTTY beschikbaar op: www.chiark.greenend.org.uk/~sgtatham/putty/

Catalogic Software biedt geen technische ondersteuning voor uitvoerbare bestanden van derden. Het gebruik van uitvoerbare bestanden van derden is op eigen risico.

“plink.exe” kan worden gebruikt in een Windows batch script om het uitvoeren van scripts op afstand via SSH te automatiseren. Dit is vooral nuttig bij het automatiseren van NetApp-operaties en het triggeren van extra scripts op UNIX- en Linux-hosts. Een typisch commando ziet er als volgt uit:

plink -ssh -l root -pw "password" host-name command

Een specifieker voorbeeld is:

plink -ssh -l root -pw "password" 192.168.199.10 "reboot"

Op compatibele UNIX/Linux-systemen zorgt dit commando ervoor dat de remote machine op adres 192.168.199.10 onmiddellijk herstarten.

Als je plink voor het eerst vanaf de Windows commandoregel uitvoert op een nieuwe host, verschijnt een bericht dat lijkt op het volgende:

The server's host key is not cached in the registry. Youhave no guarantee that the server is the computer youthink it is.The server's rsa2 key fingerprint is:ssh-rsa 768 d1:1a:29:c0:6d:71:db:3b:36:7b:c1:01:b5:da:ca:d8If you trust this host, enter "y" to add the key toPuTTY's cache and carry on connecting.If you want to carry on connecting just once, withoutadding the key to the cache, enter "n".If you do not trust this host, press Return to abandon theconnection.Store key in cache? (y/n)

Dit is een interactieve prompt waar je niet omheen kunt. Als u ‘y’ selecteert, wordt een hostsleutel in de cache van het Windows-register opgeslagen, en wordt voor deze host de vraag over de key fingerprint niet opnieuw gesteld. Als je ‘n’ selecteert, wordt de sleutel niet gecached, en verschijnt deze vraag elke keer als je probeert verbinding te maken met deze host.

“plink” slaat deze host sleutels op in het gebruikersprofiel in het HKEY_CURRENT_USER register. Dit gebied van het register is specifiek voor de huidige login; het blijft bestaan tussen login sessies, maar deze waarden worden niet gedeeld met andere gebruikers van het systeem.

Dit is waar het probleem zich voordoet. De standaardaccount die voor DPX wordt gebruikt is ‘Lokale systeemaccount’. Controleer deze instelling door naar de Windows service manager te gaan. In de service manager, zoek de cmagent service, klik met de rechter muisknop en selecteer eigenschappen, en bekijk dan het “Aanmelden” tabblad. Opdat DPX effectief gebruik zou maken van plink, moet een hostsleutel gecached worden in het HKEY_CURRENT_USER register voor de aangeduide cmagent service login account. Het probleem is dat “Lokaal Systeem account” geen directe manier heeft om in te loggen op de console en deze waarden eenvoudig te zaaien.

Er zijn twee mogelijkheden:

  • Maak een administrator account aan die volledige toegang heeft tot alle lokale machine hardware en ondersteunde applicatie interfaces
  • Gebruik “Lokaal Systeem account”

In het algemeen is de eenvoudigste methode om een administrator account aan te maken die volledige toegang heeft tot alle lokale machine hardware en ondersteunde applicatie interfaces. Een lokale machinebeheerder of een domeinbeheerderaccount werkt meestal, hoewel elke account volstaat als het de noodzakelijke rechten heeft om DPX-backup en -restore operaties goed te laten werken. Als de account is gemaakt, doet u het volgende:

  1. Ga naar de Windows service manager en wijzig de DPX services (vooral cmagent) om deze nieuwe account te gebruiken. Test een taak voor gegevensbeveiliging om te controleren of dit account werkt voor DPX.
  2. Log in onder dit account en open een commandoshell. Roep voor elke host waarmee u verbinding moet maken “plink -ssh user@host-name” op, en antwoord “y” als u wordt gevraagd naar de key fingerprint om de waarde te cachen. Er zijn geen andere commando’s nodig; u kunt alle interactieve shells die worden aangeroepen, afsluiten.

De benodigde waarden worden gecached in:
HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\SshHostKeys

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.