Ruby Net::SSH, el protocolo SSH (Secure Shell)
Automatización con Net::SSH
PeopleImages/DigitalVision/Getty Images
SSH (o 'Secure Shell') es un protocolo de red que le permite intercambiar datos con un host remoto a través de un canal encriptado. Se usa más comúnmente como un shell interactivo con Linux y otros sistemas similares a UNIX. Puede usarlo para iniciar sesión en un servidor web y ejecutar algunos comandos para mantener su sitio web. Sin embargo, también puede hacer otras cosas, como transferir archivos y reenviar conexiones de red.
Red::SSH es una manera para Rubí para interactuar con SSH. Con esta gema, puede conectarse a hosts remotos, ejecutar comandos, examinar su salida, transferir archivos, reenviar conexiones de red y hacer cualquier cosa que normalmente haría con un cliente SSH. Esta es una herramienta poderosa para tener si interactúa con frecuencia con Linux remoto o sistemas similares a UNIX.
Instalando Net::SSH
los Red::SSH La biblioteca en sí es Ruby puro: no requiere otras gemas y no necesita un compilador para instalar. Sin embargo, se basa en la biblioteca OpenSSL para realizar todo el cifrado necesario. Para ver si OpenSSL está instalado, ejecute el siguiente comando.
Si el comando Ruby anterior genera una versión OpenSSL, está instalado y todo debería funcionar. El instalador de un clic de Windows para Ruby incluye OpenSSL, al igual que muchas otras distribuciones de Ruby.
Para instalar el Red::SSH propia biblioteca, instale el net-ssh joya.
Uso básico
La forma más común de usar Net::SSH es usar el Red::SSH.inicio método. Este método toma el nombre de host, el nombre de usuario y la contraseña y devolverá un objeto que representa la sesión o lo pasará a un bloque si se le da uno. si das el comienzo método un bloque, la conexión se cerrará al final del bloque. De lo contrario, tendrás que cerrar manualmente la conexión cuando termines.
El siguiente ejemplo inicia sesión en un host remoto y obtiene el resultado del ls (lista de archivos) comando.
Dentro del bloque de arriba, el ssh objeto se refiere a la conexión abierta y autenticada. Con este objeto, puede ejecutar cualquier cantidad de comandos, ejecutar comandos en paralelo, transferir archivos, etc. También puede notar que la contraseña se pasó como un argumento hash. Esto se debe a que SSH permite una variedad de esquemas de autenticación y debe indicarle que se trata de una contraseña.