Volver al índice


ssh

Comunicación cifrada entre dos máquinas.

$ ssh usuario@host (básica)

$ ssh -v usuario@IP_o_host (comprobar errores en una conexión)

$ ssh -p 4000 usuario@host (especificando un puerto)

$ ssh -fND localhost:2080 usuario@host (Crear un servidor proxy en una máquina remota. La “N” es para que no se puedan ejecutar comandos)

$ ssh -X -Y usuario@host akregator (Lanzar una aplicación remota en local. Ver punto 11 de esta entrada)

$ ssh usuario@host ls (lanzar un comando remoto y visualizarlo en local)

$ ssh -t usuario@host newsbeuter (lo mismo si precisa consola)

$ ssh -D 9999 usuario@host (abrir un puerto a partir del cual tunelar una conexión)

$ ssh user@host_ip 'DISPLAY=":0.0" import -window root screenshot.png' (realizar pantallazo de una sesión remota. Se archiva en el remoto no en local)

$ ssh usuario@host "tar -cf - /home/usuario/dir" | gzip dir.tar.gz (Comprimir un directorio remoto)

$ ssh usuario@host cat /home/usuario/archivo.txt | xclip -selection (Copiar el contenido de un archivo remoto en el clipboard local)

$ ssh -o "StrictHostKeyChecking no" usuario@host (Evitar verificación de known host al conectar)

# gedit /var/run/motd (modificar el mensaje de bienvenida de ssh)

1.-

conexión remota. El servidor ha de tener el archivo /etc/ssh/sshd_config con los siguientes parámetros:

AllowTcpForwarding yes

GatewayPorts yes

Luego configurar Firefox para usar un servidor proxy 127.0.0.1 puerto 9999.

2.-

Modificar el mensaje antes del login

# gedit /etc/issue.net (Para activarlo, descomentar del archivo “/etc/ssh/sshd_config” la línea: Banner /etc/issue.net)

3.-

Tunel inverso:

$ ssh -R 10000:localhost:22 usuario2@host2 (lanzado desde host1 hacia host2 crea un tunel por el puerto 10000)

$ ssh usuario2@host2 (Lanzado desde host3 hacia host2)

Una vez entrado en host2, lanzar:

$ ssh usuario1@localhost -p 10000 (Para conectar el host3 con el host1)

Otro caso de tunel inverso:

host1 no tiene acceso al router y lanza:

$ ssh -N usuario@host2 -R 2222:127.0.0.1:22 (hacia el host2 para crear un tunel por el puerto 2222)

$ ssh usuario@host2 (Usuario host3 se conecta a host2)

$ ssh usuario@127.0.0.1 -p 2222 (Y una vez entrado en host2 se conecta por el tunel a host1)

Nota.- Si host2 no corriera por el puerto 22 substituir por: usuario@host2 -p PUERTO

4.-

Crear clave publica para acceder a un remoto sin que pida identificación:

$ ssh-keygen -b 4096 -t rsa (Crear la clave)

$ ssh-copy-id usuario@IP_o_HOST (enviar la clave al remoto)

En caso de tener la conexión en un puerto distinto:

$ ssh-copy-id -p 7000 USER@HOST

5.-

Para deshabilitar el acceso a todos los usuarios excepto a root:

# touch /etc/nologin

# chmod 644 /etc/nologin

6.-

Deshabilitar/personalizar los mensajes que aparecen cuando nos logueamos en algunas distros a un host remoto mediante SSH.

$ touch /home/usuario/.hushlogin (Creando este fichero vacio se deshabilitan los mensajes. Borrandolo vuelven a aparecer)

# nano /etc/motd (Archivo para personalizar los mensaje de bienvenida a quien se loguea en el sistema)

7.-

Crear un atajo para la conexión a servidores remotos:

$ nano .ssh/config

Y pegar el siguiente contenido debidamente modificado con nuestros datos referente e dos host remotos:

host servidor

 hostname 192.168.1.10

 port 22000

 user USUARIO_SERVIDOR

host maquina1

 hostname 192.168.1.15

 port 22100

 user USUARIO_MAQUINA1

Nota.- Delante de las lineas hostname, port y user existe un espacio.

Al crear este archivo, la conexión se realizará con:

$ ssh servidor (Pedirá igualmente contraseña)

$ ssh maquina1

8.-

Evitar desconexiones por inactividad:

$ nano .ssh/config

Y pegar el siguiente contenido:

Host *

    ServerAliveInterval 120

    ServerAliveCountMax 3

9.-

Añadir un registro de las acciones realizadas dentro de cada sesión SFTP

# nano /etc/ssh/sshd_config

Y dejar la linea como se indica:

Subsystem sftp /usr/lib/openssh/sftp-server -l INFO

Tras reiniciar ssh, el registro se plasmará en /var/log/auth.log

10.-

Aumentando la seguridad del servidor ssh:

# nano /etc/ssh/sshd_config

Y añadir o modificar las siguientes lineas:

AllowUsers juan pedro andrés (Limitando a uno o varios los usuarios autorizados)

AllowGroup oficina (Restringir acceso a solo un grupo)

Port 372 (Modificando puerto. Aconsejable uno inferior al 1024)

LoginGraceTime 40 (Mostrar la pantalla de login 40 segundos antes de cerrarse)

MaxStartups 4 (Cantidad máxima de conexiones simultaneas)

MaxAuthTries 3 (Limitar el número de intentos de logeo, tras los cuales se cierra la conexión)

11.-

Ajustes para tunelar aplicaciones gráficas:

En el servidor:

# nano /etc/ssh/sshd_config

AllowTcpForwarding yes

X11Forwarding yes

X11DisplayOffset 10

X11UseLocalhost yes

En la máquina cliente:

# nano /etc/ssh/ssh_config

ForwardX11 yes

ForwardX11Trusted yes

Después de reiniciar ssh, con el parámetro -X se visualizará la gui remota que tambien tiene que estar instalada en local.

$ ssh -X usuario@host akregator


Volver al índice