Ejemplos de Golang SSH

Ejemplos de Golang SSH

Secure Shell o SSH es un protocolo de red seguro que permite inicios de sesión remotos de dispositivos en una conexión segura. SSH es uno de los protocolos de red más útiles y populares en los últimos años.

En este artículo, discutiremos cómo puede usar ir a trabajar con el protocolo SSH.

Paquete Golang SSH

En este tutorial, usaremos el paquete Crypto/SSH. Puede importar el paquete como:

importar "golang.org/x/crypto/ssh "

Cliente SSH

Comenzaremos construyendo un cliente SSH que tome la dirección de un servidor SSH remoto y se conecta a él.

Considere el ejemplo del código como se muestra a continuación:

paquete principal
importar (
"registro"
"Golang.org/x/crypto/ssh "
"Golang.org/x/crypto/ssh/conocehosts "
)
func Main ()
// configuración ssh
HostKeyCallback, ERR: = Knowhosts.Nuevo ("/Home/Debian11/.ssh/conoce_hosts ")
Si err != nulo
registro.Fatal (err)

config: = & ssh.ClientConfig
Usuario: "Ubuntu",
Auth: [] SSH.Authmethod
ssh.Contraseña ("contraseña"),
,
HostKeyCallback: HostKeyCallback,

// Conectar el servidor SSH
conn, err: = ssh.Dial ("TCP", "192.168.205.217: 22 ", config)
Si err != nulo
registro.Fatal (err)

diferir a Conn.Cerca()

En el ejemplo de código anterior, comenzamos importando los módulos requeridos. Importamos el cripto/ssh y cripto/conocido para conectarse al servidor SSH y analizar la tecla de host.

Luego creamos una nueva clave de host usando los conocidos.Nuevo método. La función devuelve una devolución de llamada clave de host de los archivos de clave de host especificados.

A continuación, creamos config para iniciar sesión en el servidor. Esta es una información de retención de estructura, como el usuario y el método de autenticación.

El último paso es marcar la conexión al servidor utilizando el SSH.Método dial ().

Crear sesión

Podemos crear una sesión utilizando el método de noticias. Un código de ejemplo de código es como se muestra a continuación:

sesión, err: = Conn.Nueva sesión()
Si err != nulo
registro.Fatal (err)

aplazar la sesión.Cerca()

Solicitar Pty

Considere el ejemplo de código proporcionado a continuación:

// Configurar el modo terminal
Modos: = SSH.Terminal Modes
ssh.Echo: 0, // supresión de eco

// Ejecutar la sesión terminal
Si err: = sesión.Requestpty ("xterm", 50, 80, modos); errar != nulo
registro.Fatal (err)

// Iniciar Shell remoto
Si err: = sesión.Caparazón(); errar != nulo
registro.Fatal (err)

En el ejemplo anterior, configuramos los modos de terminal. Aunque puede usar los parámetros predeterminados, en este ejemplo, establecemos el SSH.Hacer un valor de eco a 0. Esto evita que el shell se haga eco de los comandos.

A continuación, solicitamos una sesión de terminal utilizando el método requestty (). Esto toma el término como una cadena, y la altura y el ancho de la sesión terminal como enteros y el modo de configuración del terminal.

Ejecutar comando

Puede ejecutar un solo comando en el servidor una vez que se establece una sesión. Por ejemplo:

bytes de varilla var.Buffer
sesión.Stdout = & buff
Si err: = sesión.Ejecutar ("ls -la"); errar != nulo
registro.Fatal (err)

fmt.Println (aficionado.Cadena())

En el ejemplo anterior, usamos la función Ejecutar para ejecutar un comando en el servidor.

A continuación se muestra un ejemplo de salida:

Conclusión

Esta guía cubre los fundamentos de trabajar con el paquete SSH en el lenguaje de programación GO. Además, la creación de una sesión utilizando el método de noticias, solicitando una sesión de terminal utilizando el método requestty () y utilizando el comando Ejecutar se discutió. Esperamos que hayas encontrado este artículo útil. Consulte otros artículos de Sugerencia de Linux para obtener más consejos e información.