Administración remota con SSH
SSH es un protocolo que permite iniciar sesiones seguras en máquinas remotas. Utiliza el puerto 22 y su objetivo es establecer conexiones remotas que permitan la transmisión segura de todo tipo de datos.SSH es parecido a Telnet, con la diferencia de que la información en el caso de SSH viaja encriptada. Con Telnet la transmisión entre el cliente y el servidor se realiza completamente en texto plano, por lo que cual sniffer puede capturar información y obtener, por ejemplo, el login y contraseña del usuario.
En este post se explicará como instalar SSH en Linux, concretamente yo he realizado las pruebas en Ubuntu Dapper, y cómo conectar con un ordenador que hace de servidor SSH tanto desde Linux como desde Windows.
¿Cómo se instala SSH?
En la consola (Aplicaciones/Accesorios/Terminal) escribimos:
- sudo apt-get install ssh
Archivos de configuración de SSH
Los ficheros de configuración de SSH se encuentran en el directorio /etc/ssh. Los más importantes son los siguientes:
- sshd_config: fichero que contiene los parámetros de configuración del servidor. Más adelante veremos algunos de esos parámetros.
- ssh_config: fichero de configuración del cliente SSH.
- ssh_host_rsa_key: clave RSA privada la máquina.
- ssh_host_rsa_key.pub: clave RSA pública.
- ssh_known_hosts: claves públicas RSA de otras máquinas.
- ~/.ssh/authorized_keys: claves públicas del usuario para la autenticación.
¿Cómo conectar con un servidor remoto con SSH?
Desde la consola tecleamos:
- ssh nombre_usuario@host
Si hemos modificado en el servidor el puerto utilizado por SSH (más adelante veremos cómo hacerlo), tendrÃamos que conectarnos al servidor añadiendo el parámetro -p seguido del número de puerto:
- ssh -p 4440 nombre_usuario@host
Suponiendo que el puerto utilizado sea el 4440.
Si el nombre del usuario en el servidor coincide con el nombre de usuario en el cliente se puede omitir.La primera vez que un usuario conecta con el servidor SSH se pedirá confirmación para aceptar la clave pública del servidor, lo que hace que se añada al archivo ~/.ssh/known_hosts.
Fichero de configuración del servidor SSH
El archivo de configuración del servidor SSH se encuentra en /etc/ssh y se llama sshd_config. Este fichero lo podemos modificar con cualquier editor de texto como gedit. Para editarlo abrimos el terminal y escribimos:
- gedit /etc/ssh/sshd_config
Veamos algunos de los parámetros más importantes de este fichero:
-
Port: indica el puerto de escucha del servicio SSH. Por defecto el puerto de escucha es el 22.
-
Protocol: indica la versión de protocolo que se utiliza. Normalmente se utiliza la versión 2.
-
X11Forwading: este parámetro permite ejecutar aplicaciones gráficas en el servidor (X11Forwading yes). Lo veremos más adelante.
-
PermitRootLogin: este parámetro indica si el administrador (root) puede conectarse al servidor SSH. Por motivos de seguridad no debemos permitir que el administrador pueda conectarse al servidor (PermitRootLogin no).
-
AllowUsers: con este parámetro indicamos aquellos usuarios que podrán conectarse al servidor. El resto de usuarios no podrán hacerlo. La lista de usuarios que tendrán permiso para conectarse al servidor deben ir en la misma lÃnea separados por espacios. Si, por ejemplo, queremos que sólo puedan conectarse a nuestro servidor SSH el usuario con login ‘user1′ y el usuario con login ‘user2′, pondremos: AllowUsers user1 user2.
-
LoginGraceTime: es el número de segundos que tiene un usuario remoto para hacer login en el servidor SSH.
-
MaxAuthTries: es el número de intentos que tiene el usuario remoto para hacer login.
-
MaxStartups: define el número máximo de usuarios que pueden estar conectados simultáneamente al servidor SSH.
¿Cómo reiniciar el servidor ssh?
El servidor ssh se reinicia escribiendo en la consola lo siguiente:
- sudo /etc/init.d/ssh restart
Lo tendremos que hacer cada vez que hagamos algún cambio el archivo de configuración del servidor.
¿Cómo ejecutar aplicaciones gráficas en el servidor?
Para ejecutar aplicaciones gráficas en el servidor tenemos que habilitar la opción X11Forwading, editando el fichero de configuración del servidor (/etc/ssh/sshd_config). Esta opción también debemos habilitarla en el fichero de configuración del cliente (/etc/ssh/ssh_config). Para habilitar esta opción tan solo tendremos que poner: X11Forwadig yes.Después tendremos que acceder al servidor SSH con el parámetro -X:
- ssh -X usuario@máquina_remota
Si ejecutamos xclock, por ejemplo, veremos que aparece una ventana con el reloj en nuestro escritorio.
¿Cómo realizar transferencias de ficheros vÃa SSH?
Para realizar transferencias de ficheros entre cliente y servidor utilizamos el comando scp.Si queremos copiar un archivo al servidor escribiremos en el terminal:
- scp archivo_local usuario@máquina:archivo_remoto
archivo_local es el archivo que se encuentra en la máquina del cliente. archivo_remoto es el nombre que daremos al archivo en el servidor.Si lo que queremos es copiar en nuestra máquina un fichero que se encuentre en el servidor escribiremos:
- scp usuario@máquina:archivo_remoto archivo_local
El siguiente ejemplo copia un fichero llamado prueba.txt, que se encuentra en la carpeta /home/user1/, al directorio actual de trabajo.
- scp user1@máquina:/home/user1/prueba.txt .
Con scp también podemos copiar directorios enteros:
- scp usuario@máquina: /directorio_remoto/* /directorio_local/
Con la orden anterior copiarÃamos el contenido del directorio /directorio_remoto/ al directorio /directorio_local/, que es el que se debe encontrar en nuestra máquina. Con el parámetro -r copiamos la carpeta y todas las subcarpetas que se encuentren dentro de ella.
- scp -r usuario@máquina: /directorio_remoto/* /directorio_local/
Si lo que queremos es copiar una carpeta que se encuentre en nuestra máquina al servidor SSH, tendrÃamos que seguir la siguiente sintaxis:
- scp /directorio_local/* usuario@máquina:/directorio_remoto
Con esta orden estaremos copiando el contenido del directorio directorio_local, que se encuentra en nuestra máquina, al directorio llamado directorio_remoto que se encuentra en el servidor.
¿Cómo podemos evitar que nos pida la contraseña cada vez que nos conectemos al servidor?
Para ello debemos generar en primer lugar la clave pública. En el terminal escribimos:
- ssh-keygen -t rsa
Cuando nos pregunte por la palabra clave la omitimos pulsando dos veces enter.A continuación copiamos la clave pública al servidor con el comando ssh-copy-id:
- ssh-copy-id nombre_usuario@máquina
Ahora sólo queda arrancar el agente SSH para que recuerde la contraseña.
- ssh-add
Debemos tener en cuenta que si cerramos la consola y la abrimos de nuevo para conectarnos al servidor SSH, éste nos volverá a pedir contraseña. Para evitar esto podemos añadir el agente al inicio de sesión para que se ejecute al iniciar Ubuntu (Sistema/Preferencias/Sesiones).
Modificar el mensaje de bienvenida
Para modificar el mensaje de bienvenida simplemente debemos editar el archivo /var/run/motd y escribir en él lo que queramos que aparezca cuando alguien se conecte a nuestro servidor.
Conectar a un servidor SSH con Nautilus
Podemos crear una acceso directo a una carpeta del servidor SSH. Para ello tendremos que pinchar en “Lugares”, en el menú principal, y después en “Conectar con el servidor”.
En tipo de servicio escogemos SSH. En Servidor escribimos la IP o nombre del servidor. En puerto escribimos el número de puerto que utilizamos para conectarnos al servidor (por defecto el 22). En carpeta el nombre del directorio al que vamos a acceder en el servidor. En nombre de usuario el usuario con el que nos vamos a conectar al servidor. Por último en “Nombre de la conexión” escribimos un nombre para identificar la conexión. Cuando hayamos especificado todos los valores pinchamos en “Conectar” y aparecerá el nombre de la conexión en “Lugares”, en el menú principal de Ubuntu.
También podemos acceder con Nautilus a una carpeta del servidor. A la hora de copiar ficheros desde o hacia el servidor siempre es más amigable utilizar el navegador de ficheros que copiar los ficheros a través de la consola. Abrimos Nautilus y en la barra de direcciones escribimos ssh://nombre_usuario@ip_servidor. Esto en el caso de que usemos el puerto por defecto. Si usamos otro, por ejemplo el 4440, escribirÃamos ssh://nombre_usuario@ip_servidor:4440.
Cuando conectemos con el servidor nos pedirá la contraseña de la cuenta.

Una vez introducida podremos movernos por el sistema de ficheros de la máquina remota.

¿Cómo conectar desde Windows con un servidor SSH funcionando en Ubuntu?
Para conectarnos en Windows a un equipo con Ubuntu y con un servidor SSH podemos utilizar un cliente como Putty. Se puede descargar de la siguiente dirección.
Para copiar ficheros o directorios desde una máquina Windows a otra con Ubuntu se puede utilizar el programa Winscp.
¿Cómo conectar desde Ubuntu con un servidor SSH funcionando en Windows?
Para ello debemos instalar un servidor SSH en Windows. FreeSSH Server es una buena opción y además es gratuito. En este post comento como instalar este servidor en Windows.
- http://www.guia-ubuntu.org/index.php?title=Servidor_ssh
- http://es.tldp.org/Manuales-LuCAS/doc-guia-ubuntu-breeze/guia-ubuntu-htmls/servidor-servidor_ssh.html
Popularity: 7% [?]
Otras entradas que te pueden interesar
- Cambiar la contraseña de root en Mysql (Ubuntu)
- Módulo webquest en Moodle
- FireFTP, un cliente FTP en Firefox
- Cambiar el idioma de Moodle a español
- Instalar servidor SSH en Windows
- Instalar un servidor FTP en Ubuntu
- Comparativa de sistemas operativos. Vista vs Ubuntu



[…] También podremos administrar aquellos servicios que tengamos instalados. Por ejemplo, podremos administrar desde el navegador nuestro servidor SSH (consulta el siguiente enlace si deseas saber cómo instalar y configurar un servidor SSH: administración remota con SSH) […]
Administra tu sistema con Webmin | Alejandrox
6 Abr 08 at 1:56 pm
[…] 89) OpenSSH: conjunto de aplicaciones que permiten realizar comunicaciones cifradas e iniciar sesiones en máquinas remotas usando el protocolo SSH. Manual. […]
Mis 100 aplicaciones imprescindibles para Ubuntu | Alejandrox
11 May 08 at 8:12 pm
[…] 89) OpenSSH: conjunto de aplicaciones que permiten realizar comunicaciones cifradas e iniciar sesiones en máquinas remotas usando el protocolo SSH. Manual. […]
100 aplicaciones imprescindibles para Ubuntu at Valverde a Tope
20 May 08 at 3:21 pm
[…] 89) OpenSSH: conjunto de aplicaciones que permiten realizar comunicaciones cifradas e iniciar sesiones en máquinas remotas usando el protocolo SSH. Manual. […]
La marciandad » 100 programas imprescindibles para Ubuntu
20 May 08 at 6:17 pm
[…] 89) OpenSSH: conjunto de aplicaciones que permiten realizar comunicaciones cifradas e iniciar sesiones en máquinas remotas usando el protocolo SSH. Manual. […]
Mis 100 aplicaciones imprescindibles para Ubuntu « G@LloLiNuX
21 May 08 at 12:57 am
[…] 89) OpenSSH: conjunto de aplicaciones que permiten realizar comunicaciones cifradas e iniciar sesiones en máquinas remotas usando el protocolo SSH. Manual. […]
Charliec114 Blog’s » Blog Archive » Buena recopilación de las mejores aplicaciones para Ubuntu
22 May 08 at 6:45 pm
[…] 89) OpenSSH: conjunto de aplicaciones que permiten realizar comunicaciones cifradas e iniciar sesiones en máquinas remotas usando el protocolo SSH. Manual. […]
100 programas para tú Linux « SupremacÃa Linux
20 Jul 08 at 8:32 pm
[…] 89) OpenSSH: conjunto de aplicaciones que permiten realizar comunicaciones cifradas e iniciar sesiones en máquinas remotas usando el protocolo SSH. Manual. […]
Vaya lista… « La fragua del Tic
22 Jul 08 at 7:15 am
[…] http://www.alejandrox.com/2007/03/administracion-remota-con-ssh/ […]
Util PC Blog » Blog Archive » Instalación de mini servidor web casero capÃtulo 2: Instalación de SSH
7 Ago 08 at 1:25 am
[…] 89) OpenSSH: conjunto de aplicaciones que permiten realizar comunicaciones cifradas e iniciar sesiones en máquinas remotas usando el protocolo SSH. Manual. […]
Cristales Azules » Alternativas libres para soft
22 Ago 08 at 9:50 pm