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.