FreeBSD GNU/Linux Solaris Unix Unix

Cómo utilizar SSH en el shell de Unix / Linux

¿Cómo puedo utilizar el cliente SSH en el shell o en la consola de Unix / Linux? Vamos a verlo, aunque primero, vamos a explicar qué es un cliente SSH.

Un cliente SSH es una aplicación que se utiliza para acceder a un sistema remoto para gestionarlo mediante comandos. El protocolo SSH permite la conexión a otro host una vez se han validado los datos de acceso, ya que la identidad del usuario debe ser verificada. Una vez conectados, los comandos que escribimos serán ejecutados en el sistema remoto y no en nuestro sistema.

Sintaxis general de SSH

La sintaxis general es la siguiente:

ssh usuario@host comando

Es decir, primero escribimos el propio comando SSH, seguidamente nuestro nombre de usuario en el sistema remoto y, tras el símbolo @, el nombre del host remoto. Adicionalmente también podemos escribir una serie de comandos que se ejecutarán en el sistema remoto.

Por ejemplo, para acceder con “yo” como nombre de usuario a un hipotético sistema llamado sistema.neeonez.com y mostrar quién está conectado, debemos introducir el siguiente comando:

# ssh yo@portal.nixcraft.com who

Ahora vamos a ver cómo utilizar SSH dentro de un script.

Uso de SSH en Shell Script

También es posible utilizar SSH comando en Shell Script. El problema es que se nos pedirá una contraseña. Para evitar que se nos pida la contraseña, necesitamos un sistema de autenticación con clave pública. Una vez configurada la clave pública, crearemos nuestro script con los comandos que queramos ejecutar en el sistema remoto.

A modo de ejemplo, vamos a crear un script que almacene en un archivo de texto un listado de los usuarios que están conectados en el momento de la conexión. Estos son los pasos:

1. Lo primero que tenemos que hacer es crear y editar un script sh, al que, en este caso, le daremos el nombre de scriptssh.sh. Podmeos utilizar un editor como vi o nano:

# nano scriptssh.sh

2. Ahora introducimos el código de nuestro script:

#!/bin/bash
# Lista de usuarios conectados en Unix/Linux
HOST="192.168.0.1"
# Nombre de usuario SSH
USUARIO="admin"
# Nombre del archivo en el que guardamos los datos
FICHERO="salida.txt"
ssh $USUARIO@$HOST w > $FICHERO

Lo único que hacemos es ejecutar el comando w (similar a who) y redirigir la salida al fichero salida.txt, en el que se almacenarán los datos. Ahora guardamos el archivo y lo cerramos.

3. Para ejecutar el script, debemos darle los permisos de ejecución adecuados:

# chmod +x scriptssh.sh

4. Ahora, sencillamente lo ejecutamos. Si tenéis dudas acerca de cómo ejecutar un script, podéis consular esta guía para ejecutar scripts sh. Vamos a ello:

# ./scriptssh.sh

En caso de que os salga un error en el que se dice algo así como “pseudo-terminal will not be allocated because stdin is not a terminal”, debéis hacer lo siguiente; en lugar de “ssh $USUARIO@$HOST w > $FICHERO”, debéis escribir “ssh -t -t -l $USUARIO@$HOST w > $FICHERO”.

5. Si todo ha ido bien, veremos la salida del comando en el archivo salida.txt:

# nano salida.txt

Esto ha sido todo.

EduZRO

Ingeniero técnico en informática, actualmente trabajo como desarrollador web y programador de videojuegos.

No Comments

comment No comments yet

You can be first to leave a comment

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *