15.3. Configuración de un cliente OpenSSH

Para conectarse a un servidor OpenSSH desde una máquina cliente, debe tener los paquetes openssh-clients y openssh instalados en la máquina cliente.

15.3.1. Uso del comando ssh

El comando ssh es un reemplazo seguro para los comandos rlogin, rsh, y telnet. Le permite inicar sesiones y ejecutar comandos en máquinas remotas.

Inicie una sesión en una máquina remota con ssh que es muy parecido a utilizar el comando telnet. Para iniciar una sesión remota a una máquina llamada penguin.example.net, escriba el comando siguiente en el intérprete de comandos del shell:

ssh penguin.example.net

La primera vez que ejecute ssh a una máquina remota, verá un mensaje similar al siguiente:

The authenticity of host 'penguin.example.net' can't be established.
DSA key fingerprint is 94:68:3a:3a:bc:f3:9a:9b:01:5d:b3:07:38:e2:11:0c.
Are you sure you want to continue connecting (yes/no)? 

Escriba yes para continuar. Esto le permitirá agregar el servidor en su lista de host conocidos como se muestra en el siguiente mensaje:

Warning: Permanently added 'penguin.example.net' (RSA) to the list of known 
hosts.

Luego, verá un indicador de comandos preguntándole por su contraseña. Después de ingresar su contraseña, se encontrará en el indicador de comandos de la máquina remota. Si no especifica un nombre de usuario, el nombre de usuario con el que se ha validado como la máquina local se validará en la máquina remota. Si quiere especificar un nombre de usuario use el comando siguiente:

ssh username@penguin.example.net

También puede usar la sintaxis ssh -l username penguin.example.net.

El comando ssh se puede utilizar para ejecutar un comando en una máquina remota sin acceder al indicador de comandos. La sintaxis es ssh hostname command. Por ejemplo, si quiere ejecutar el comando ls /usr/share/doc en la máquina remota penguin.example.net, escriba el comando siguiente en la línea de comandos del shell:

ssh penguin.example.net ls /usr/share/doc

Una vez que introduzca la contraseña correcta, visualizará el contenido del directorio /usr/share/doc, y regresará al shell de su equipo local.

15.3.2. Usando el comando scp

El comando scp puede ser usado para transferir archivos entre máquinas sobre una conexión encriptada y segura. Es parecido al comando rcp.

La sintaxis general para transferir el archivo local a un sistema remoto es como sigue a continuación:

scp localfile 
username@tohostname:/newfilename

localfile especifica la fuente, y username@tohostname:/newfilename especifica el destino.

Para transferir un archivo local shadowman a su cuenta penguin.example.net, escriba en la línea de comandos (reemplace username con su nombre de usuario):

scp shadowman 
username@penguin.example.net:/home/username

Esto transferirá el archivo local shadowman a /home/username/shadowman en penguin.example.net.

La sintaxis general para transferir un archivo remoto al sistema local es como sigue:

scp username@tohostname:/remotefile 
/newlocalfile

remotefile especifica la fuente, y newlocalfile especifica el destino.

Se puede especificar múltiples archivos como las fuentes. Por ejemplo, para transferir el contenido del directorio /downloads a un directorio existente llamado uploads en la máquina remota penguin.example.net, teclee lo siguiente desde el intérprete de comandos:

scp /downloads/* 
username@penguin.example.net:/uploads/

15.3.3. Uso del comando sftp

La utilidad sftp puede ser usada para abrir una sesión segura interactiva de FTP. Es similar a ftp excepto que ésta utiliza una conexión encriptada segura. La sintaxis general es sftp username@hostname.com. Una vez autentificado, podrá utilizar un conjunto de comandos similar al conjunto utilizado por el comando FTP. Consulte las páginas del manual de sftp para obtener un listado de todos estos comandos. Para consultar el manual ejecute el comando man sftp en el intérprete de comandos. La utilidad sftp sólo está disponible en las versiones 2.5.0p1 de OpenSSH y superiores.

15.3.4. Generar pares de claves

Si no quiere introducir su contraseña cada vez que se conecte a una máquina remota con ssh, scp, o sftp, puede generar un par de claves de autorización.

Las claves deben ser generadas para cada usuario. Para generar las claves de un usuario, debe seguir los siguientes pasos como el usuario que quiere conectarse a máquinas remotas. Si completa los siguentes pasos como root, sólo root será capaz de utilizar estas claves.

Arrancar con la versión 3.0 deOpenSSH, ~/.ssh/authorized_keys2, ~/.ssh/known_hosts2, y /etc/ssh_known_hosts2 se ha quedado obsoletas. Los protocolos 1 y 2 de SSH comparten los archivos ~/.ssh/authorized_keys, ~/.ssh/known_hosts, y /etc/ssh/ssh_known_hosts.

Red Hat Linux 9 usa el protocolo 2 de SSH y claves RSA por defecto.

SugerenciaSugerencia
 

Si reinstala Red Hat Linux y quiere guardar los pares de claves generados, haga una copia de respaldo del directorio .ssh en su directorio principal (home). Después de la reinstalación, copie este directorio de vuelta a su directorio principal. Este proceso puede realizarse para todos los usuarios de su sistema, incluyendo root.

15.3.4.1. Generar un par de claves RSA para la versión 2

Siga los siguientes pasos para generar un par de claves RSA para la versión 2 del protocolo SSH. Esto es lo predeterminado para iniciar con OpenSSH 2.9.

  1. Para generar un par de claves RSA para trabajar con la versión 2 del protocolo, teclee el siguiente comando desde el indicador de comandos de la shell:

    ssh-keygen -t rsa

    Acepte la localización por defecto del archivo ~/.ssh/id_rsa. Introduzca una palabra de paso diferente de la contraseña de su cuenta y confírmela introduciéndola nuevamente.

    La clave pública se escribe a ~/.ssh/id_rsa.pub. La clave privada está escrita a ~/.ssh/id_rsa. No distribuya la clave privada a nadie.

  2. Cambie los permisos de su directorio .ssh usando el comando chmod 755 ~/.ssh.

  3. Copie el contenido de ~/.ssh/id_rsa.pub a ~/.ssh/authorized_keys en la máquina en la que se quiere conectar. Si el archivo ~/.ssh/authorized_keys no existe, puede copiar el archivo ~/.ssh/id_rsa.pub al archivo ~/.ssh/authorized_keys en la otra máquina.

  4. Si está ejecutando GNOME, salte a la Sección 15.3.4.4. Si no está ejecutando el sistema X Window, salte a la Sección 15.3.4.5.

15.3.4.2. Generación de un par de claves DSA para la versión 2

Use los siguientes pasos para generar un par de claves DSA para la versión 2 del protocolo SSH.

  1. Para generar un par de claves DSA para trabajar con la versión 2 del protocolo, escriba el siguiente comando en el intérprete de comandos de la shell:

    ssh-keygen -t dsa

    Acepte la localización por defecto del archivo ~/.ssh/id_dsa. Introduzca una palabra de paso diferente a la contraseña de su cuenta y confirme ésta introduciéndola de nuevo.

    SugerenciaSugerencia
     

    Una palabra de paso es una cadena de caracteres o palabras utilizadas para autentificar a un usuario. Las palabras de paso se diferencian de las contraseñas en que se pueden utilizar espacios o tabuladores en la palabra de paso. Las palabras de paso son generalmente más largas que las contraseñas porque ellas son habitualmente frases.

    La clave pública es escrita a ~/.ssh/id_dsa.pub. La clave privada es escrita a ~/.ssh/id_dsa. Es de suma importancia que no de la clave privada a nadie.

  2. Cambie los permisos de su directorio .ssh usando el comando chmod 755 ~/.ssh.

  3. Copie el contenido de ~/.ssh/id_dsa.pub a ~/.ssh/authorized_keys en la máquina en la cual quiere conectarse. Si el archivo ~/.ssh/authorized_keys no existe, puede copiar el archivo ~/.ssh/id_dsa.pub al archivo ~/.ssh/authorized_keys en la otra máquina.

  4. Si está ejecutando GNOME, salte a la Sección 15.3.4.4. Si no está ejecutando el sistema X Window, salte a la Sección 15.3.4.5.

15.3.4.3. Generación de un par de claves RSA para la versión 1.3 y 1.5

Siga los siguientes pasos para generar un par de claves RSA la cual es usada por la versión 1 del protocolo SSH. Si sólo se está conectando entre sistemas que usan DSA, no necesita una par de claves de versión RSA 1.3 o RSA versión 1.5.

  1. Para generar un par de claves RSA (para la versión de protocolos 1.3 y 1.5), escriba el comando siguiente en la línea de comandos del shell:

    ssh-keygen -t rsa1

    Acepte la localización por defecto del archivo (~/.ssh/identity). Introduzca una palabra de paso diferente a la contraseña de su cuenta y confirme ésta introduciéndola de nuevo.

    La clave pública está escrita en ~/.ssh/identity.pub. La clave privada está escrita a ~/.ssh/identity. No entregue su clave a nadie.

  2. Cambie los permisos de su directorio .ssh y su clave con los comandos chmod 755 ~/.ssh y chmod 644 ~/.ssh/identity.pub.

  3. Copie los contenidos de ~/.ssh/identity.pub al archivo ~/.ssh/authorized_keys en la máquina a la cual se desea conectar. Si el archivo ~/.ssh/authorized_keys no existe, puede copiarlo desde ~/.ssh/identity.pub al archivo ~/.ssh/authorized_keys en el equipo remoto.

  4. Si está ejecutando GNOME, salte a la Sección 15.3.4.4. Si no está corriendo GNOME, salte a la Sección 15.3.4.5.

15.3.4.4. Configurar ssh-agent con GNOME

La utilidad ssh-agent puede ser usada para guardar su palabra de paso, de manera que no tendrá que ingresarla cada vez que inicie una conexión ssh o scp. Si está usando GNOME, la utilidad openssh-askpass-gnome puede ser usada para pedirle la palabra de paso cuando inicie una conexión con GNOME y guardarla hasta que salga de GNOME. No tendrá que ingresar su contraseña o palabra de paso para ninguna conexión ssh o scp realizada durante una sesión GNOME. Si no está usando GNOME, refiérase a la Sección 15.3.4.5.

Para guardar su palabra de paso durante una sesión GNOME, siga los pasos siguientes:

  1. Necesitará tener instalado el paquete openssh-askpass-gnome; puede usar el comando rpm -q openssh-askpass-gnome para determinar si está instalado o no. Si no está instalado, hágalo desde su conjunto de CD de Red Hat Linux, desde un sitio espejo FTP de Red Hat, o usando Red Hat Network.

  2. Seleccione Botón del menú principal (en el Panel) => Extras => Preferencias => Sesión, y haga click en la pestaña de Programas de inicio. Pulse en Añadir e introduzca /usr/bin/ssh-add en el cuadro de texto Comando de inicio. Establezca un número de prioridad más alto que cualquiera de los comandos existentes para asegurárse de que se ejecute de último. Un buen número de prioridad para ssh-add es 70 o superior. Mientras más alto el número, más baja la prioridad. Si tiene otros programas listados, este debería tener la prioridad más baja. Haga click en Cerrar para salir del programa.

  3. Cierre la sesión y luego vuelva a GNOME; en otras palabras, reinicie X. Después de arrancar GNOME, aparecerá una ventana de diálogo pidiéndole su palabra(s) de paso. Introduzca la palabra de paso que se le pide. Si tiene pares de claves DSA y RSA, ambas configuradas, lo estará ejecutando para ambas. A partir de este momento, no debería introducir ninguna contraseña para ssh, scp, o sftp.

15.3.4.5. Configuración de ssh-agent

ssh-agent se puede utilizar para almacenar sus palabras de paso para que así no tenga que ingresarlas cada vez que realice una conexión ssh o scp. Si no está ejecutando el sistema X Window, siga los pasos siguientes desde el intérprete de comandos del shell. Si está ejecutando GNOME pero no quiere configurarlo para que le solicite la palabra de paso cuando se conecte (vea la Sección 15.3.4.4), este procedimiento trabajará en una ventana de terminal como por ejemplo XTerm. Si está ejecutando X pero no GNOME, este procedimiento trabajará en una ventana de terminal. Sin embargo, sus palabras de paso sólo pueden ser recordadas en este terminal; no es una configuración global.

  1. Desde el indicador de comandos de la shell, teclee el siguiente comando:

    exec /usr/bin/ssh-agent $SHELL
  2. Luego escriba el comando:

    ssh-add 

    e ingrese su palabra de paso. Si tiene más de un par de claves configuradas, se le pedirá información para ambas.

  3. Cuando termine la sesión, su palabra de paso será olvidada. Debe ejecutar estos dos comandos cada vez que abra una consola virtual o abra una ventana de terminal.