SSH (of "Secure Shell") is een netwerkprotocol waarmee u gegevens kunt uitwisselen met een externe host via een gecodeerd kanaal. Het wordt meestal gebruikt als een interactieve shell met Linux en andere UNIX-achtige systemen. U kunt het gebruiken om in te loggen op een webserver en een paar opdrachten uit te voeren om uw website te onderhouden. Het kan echter ook andere dingen doen, zoals bestanden overbrengen en netwerkverbindingen doorsturen.
Net :: SSH is een manier voor Ruby om te communiceren met SSH. Met dit juweeltje kun je verbinding maken met externe hosts, opdrachten uitvoeren, hun uitvoer onderzoeken, bestanden overdragen, netwerkverbindingen doorsturen en alles doen wat je normaal zou doen met een SSH-client. Dit is een krachtig hulpmiddel om te gebruiken als u vaak communiceert met externe Linux- of UNIX-achtige systemen.
De Net :: SSH bibliotheek zelf is pure Ruby - het vereist geen andere edelstenen en heeft geen compiler nodig om te installeren. Het is echter afhankelijk van de OpenSSL-bibliotheek om alle benodigde codering uit te voeren. Voer de volgende opdracht uit om te zien of OpenSSL is geïnstalleerd.
Als de bovenstaande Ruby-opdracht een OpenSSL-versie uitvoert, is deze geïnstalleerd en zou alles moeten werken. Het Windows One-Click-installatieprogramma voor Ruby bevat OpenSSL, net als vele andere Ruby-distributies.
Om de Net :: SSH bibliotheek zelf, installeer de net-ssh edelsteen.
De meest gebruikelijke manier om Net :: SSH te gebruiken, is het gebruik van de Net :: SSH.start methode. Deze methode neemt de hostnaam, gebruikersnaam en wachtwoord en retourneert ofwel een object dat de sessie vertegenwoordigt of geeft het door aan een blok indien gegeven. Als je het geeft begin methode een blok, wordt de verbinding aan het einde van het blok verbroken. Anders moet u de verbinding handmatig sluiten als u klaar bent.
In het volgende voorbeeld wordt u aangemeld bij een externe host en wordt de uitvoer van de ls (lijstbestanden) opdracht.
Binnen het blok hierboven, de ssh object verwijst naar de open en geverifieerde verbinding. Met dit object kunt u een willekeurig aantal opdrachten starten, opdrachten parallel starten, bestanden overbrengen, enz. Mogelijk merkt u ook dat het wachtwoord is doorgegeven als hash-argument. Dit komt omdat SSH verschillende authenticatieschema's toestaat en u moet vertellen dat dit een wachtwoord is.