index
RECURSOS GRATUITOS, CIBERACTIVISMO
  Navegación-> Inicio | Hellguest | SSH | Introducción
SSH
Introducción
El cliente de SSH
Copiando archivos con SCP
Criptografía pública
Agente SSH
Túneles SSH

Utilizando SSH

Introducción

El protocolo SSH/SecSH nació para intentar que las comunicaciones en internet fuesen más seguras, esto lo consigue eliminando el envio de las contraseñas sin cifrar y mediante la encriptación de toda la información que se transmite.

En principio podríamos pensar en SSH como un sustituto del telnet, el rexec y el rsh, pero la realidad es que SSH permite mucho más que la simple identificación de usuarios y ejecución de programas en máquinas remotas. A través de una conexión SSH se puede encapsular cualquier protocolo y gracias a la habilidad para crear túneles, tanto remotos como locales, podemos llegar a traspasar routers y cortafuegos.

Este documento se centra en OpenSSH, existen otras implementaciones del protocolo SSH, pero no todas son libres (licencia BSD) ni tan potentes como lo es OpenSSH, a parte del mero hecho de que hoy por hoy, OpenSSH es la implementación del protocolo SSH más extendida, pudiendo funcionar en un gran número de sistemas operativos y viniendo preinstalado en casi todas las distribuciones de GNU/Linux.

Consideraciones previas

Instalación de OpenSSH

Debido a la cantidad de sistemas operativos sobre los que OpenSSH puede funcionar y sobre todo al monstruoso número de distribuciones de GNU/Linux que existen, en este documento, se asumirá que el usuario ya tiene instalado OpenSSH en su equipo o que al menos conoce el sistema operativo que usa y por lo tanto, sabe como instalar programas nuevos, teniendo la capacidad de instalar OpenSSH.

Sintaxis de los comandos

Sobre la sintaxis de los distintos comandos que se muestran cabe destacar que tendrán el siguiente formato:

ssh [opciones] [usuario@]máquina

Donde ssh es simplemente el nombre del programa a ejecutar, todo lo que aparece a continuación del nombre del programa son los parámetros, los que se encuentran entre corchetes se consideran opcionales, pueden ponerse o se pueden omitir, por ejemplo, usuario@ es un parámetro que indica el nombre del usuario a emplear seguido de una arroba, si se omite, se asumirá un valor por defecto (el usuario que se está empleando para ejecutar ssh). Por el contrario, los parámetros que no están entre corchetes son obligatorios, como sucede con el parámetro máquina.

La sintaxis todavía puede ser más elaborada, tal es el caso del siguiente ejemplo:

scp [opciones] [[usuario@]máquina:]archivo ... [[usuario@]máquina:]archivo

Aquí podemos apreciar que hay corchetes dentro de parámetros que ya están entre corchetes, cuanto más internos sean los corchetes, más opcionales serán los parámetros, por ejemplo, podemos especificar el nombre de un archivo como "dir/arch.txt", lo cual asumirá que es un archivo en la máquina frente a la que estamos sentados, pero también podemos poner "equipo.remoto:dir/arch.txt", en este otro caso estamos indicando que el archivo se encuentra en el equipo con el nombre equipo.remoto, finalmente, podemos poner "manolo@equipo.remoto:dir/arch.txt", con esto especificamos que queremos acceder con el usuario manolo a la máquina con el nombre equipo.remoto y al archivo dir/arch.txt.

De está sintaxis sólo queda destacar que los puntos suspensivos quieren decir que el parámetro que les precede se puede repetir tantas veces como sea necesario, en este caso concreto, significa que podemos especificar varios archivos.

Los ejemplos

Recuerdo que cuando era pequeño, tenía una profesora de matématicas que habitualmente, despues de explicar la lección, se dirigia hacia la pizarra y diciendo que una foto vale más que mil palabras se ponía a resolver varios problemas en la pizarra, despues de eso, por desgracia, nos mandaba los deberes.

Haciendo caso a las sabias palabras de mi profesora, aparecerán gran cantidad de capturas mostrando ejemplos de como usar las herramientas que vienen con OpenSSH. Para intentar disminuir la confusión que puede generar el trabajar con equipos remotos, delante de cada comando que se escriba habrá un prompt (apuntador de la línea de comandos que indica que podemos escribir), el formato de este prompt siempre será el mismo:

[usuario@máquina] $ df -h

El prompt es todo lo que va desde el principio de la línea hasta el signo dolar ($), la parte entre corchetes muestra el usuario que se está empleando y separado mediante una arroba, el nombre del equipo informático donde se está poniendo el comando, no tiene por que ser el equipo frente al que estamos sentados, sino que también puede ser un equipo remoto al que estamos accediendo. Todo lo que aparece a la derecha del signo dolar es el propio comando a escribir.

Por HellGuest