Ruby Net::SSH, protokół SSH (Secure Shell)

Automatyzacja z Net::SSH

mężczyzna pracujący przy komputerze

PeopleImages/DigitalVision/Getty Images





SSH (lub „Secure Shell”) to protokół sieciowy, który umożliwia wymianę danych ze zdalnym hostem za pośrednictwem zaszyfrowanego kanału. Jest najczęściej używany jako interaktywna powłoka z Linuksem i innymi systemami podobnymi do UNIX. Możesz go użyć do zalogowania się do serwera WWW i uruchomienia kilku poleceń, aby utrzymać swoją witrynę. Może jednak również wykonywać inne czynności, takie jak przesyłanie plików i przekazywanie połączeń sieciowych.

Netto::SSH jest sposobem na Rubin do interakcji z SSH. Korzystając z tego klejnotu, możesz łączyć się ze zdalnymi hostami, uruchamiać polecenia, badać ich dane wyjściowe, przesyłać pliki, przekazywać połączenia sieciowe i robić wszystko, co normalnie robisz z klientem SSH. Jest to potężne narzędzie, jeśli często korzystasz ze zdalnych systemów Linux lub UNIX.



Instalowanie sieci::SSH

The Netto::SSH sama biblioteka jest czysta Ruby - nie wymaga żadnych innych klejnotów i nie potrzebuje kompilatora do zainstalowania. Jednak do wykonania całego potrzebnego szyfrowania opiera się na bibliotece OpenSSL. Aby sprawdzić, czy OpenSSL jest zainstalowany, uruchom następujące polecenie.

Jeśli powyższe polecenie Ruby wyświetla wersję OpenSSL, jest ona zainstalowana i wszystko powinno działać. Instalator Windows One-Click dla Rubiego zawiera OpenSSL, podobnie jak wiele innych dystrybucji Rubiego.



Aby zainstalować Netto::SSH samą bibliotekę, zainstaluj net-ssh klejnot.

Podstawowe użycie

Najpopularniejszym sposobem korzystania z Net::SSH jest użycie Net::SSH.start metoda. Ta metoda pobiera nazwę hosta, nazwę użytkownika i hasło i albo zwróci obiekt reprezentujący sesję, albo przekaże go do bloku, jeśli taki zostanie podany. Jeśli podasz ​ początek metody blok, połączenie zostanie zamknięte na końcu bloku. W przeciwnym razie będziesz musiał ręcznie zamknąć połączenie po jego zakończeniu.

Poniższy przykład loguje się do zdalnego hosta i pobiera dane wyjściowe ls (lista plików) polecenie.

W bloku powyżej cisza obiekt odnosi się do otwartego i uwierzytelnionego połączenia. Za pomocą tego obiektu możesz uruchamiać dowolną liczbę poleceń, uruchamiać polecenia równolegle, przesyłać pliki itp. Możesz również zauważyć, że hasło zostało przekazane jako argument hash. Dzieje się tak, ponieważ SSH pozwala na różne schematy uwierzytelniania i musisz powiedzieć, że jest to hasło.