Usted está aquí: Inicio Comunicación Documentación libre Manuales Instalar un servidor SSH en linux

Instalar un servidor SSH en linux

Nota: Ésta es la vista de impresión del Manual de referencia completo en una sola página. Si lo prefiere puede encontrar la versión original aquí.

Un pequeño manual para instalar un servidor ssh y para configurar un cliente en linux o windows

1. Objetivos

El objetivo de este documento es explicar el proceso de instalación de un servidor SSH, para lo cual se analizaran los aspectos mas importantes de la instalación y configuración de un servidor SSH.

Un servidor SSH nos ofrece entre otros los siguientes servicios:

  • Establecer conexiones tipo telnet con un servidor, pero de forma  segura (la información va encriptada).
  • Utilizar el comando SCP para transmisión de ficheros, algo parecido a lo que hacemos con un ftp, pero de forma segura, ya que utiliza el protocolo ssh.
  • Cuando disponemos de un servidor X  (desde una maquina Linux), permite ejecutar aplicaciones gráficas instaladas en el servidor de forma remota. Por ejemplo, nos permite ejecutar el fwbuilder que esta en el cortafuegos de forma que vemos en nuestra maquina el interfaz de fwbuilder sin que lo tengamos instalado
Hay dos versiones de SSH, la SSH1 y la SSH2. La mas segura es la SSH2, y la SSH1 se mantiene por compatibilidad con sistemas anteriores.

Las características de nuestra instalación serán las siguientes:

  • Utilizaremos SSH2, y configuraremos el servidor para que no permita SSH1.
  • Para poder establecer la conexión, sera imprescindible utilizar la clave ssh (passphrase) y no permitiremos que se utilice la clave que el usuario tiene en el servidor.
  • No permitiremos que el usuario root se pueda conectar. Si necesitamos entrar como root, primero debemos establecer la conexión ssh como un usuario normal, y luego a través de un “su -” convertirnos en root.

2. Instalar OpenSSH

Utilizaremos OpenSSH como servidor ssh en una máquina Linux

Los ejemplos están hechos con Debian Sarge. De todas formas, el autor ha hecho esto mismo en un RedHat8 y el proceso es idéntico.

Tenemos distintas opciones a la hora de instalar el paquete:

  • www.openssh.org descargar el paquete e instalarlo.
  • En Debian ejecutar un “apt-get install ssh”
  • En Fedora y el resto de distribuciones, utilizar el programa de gestión de paquetes para escoger e instalar el paquete ssh.

La instalación es así de simple.  :)

3. Configurar OpenSSH

Este es un proceso que es fácil pero al que hay que prestar atención.

Una vez finalizada la instalación, ssh queda configurado. El servicio pasa a estar controlado a través del demonio sshd.

Para arrancar el servicio:

/etc/init.d/ssh start

Para detener el servicio:

/etc/init.d/ssh stop

Para modificar la configuración necesitamos abrir y modificar el fichero  /etc/ssh/sshd_config.

Esto es lo que hay que cambiar:

# el usuario root no se puede conectar a través de ssh 
PermitRootLogin no
RSAAuthentication yes
PubkeyAuthentication yes
RhostsAuthentication no
hostsRSAAuthentication no
HostbasedAuthentication no
# Para arrancar en remoto aplicaciones graficas
X11Forwarding yes
PasswordAuthentication no
PermitEmptyPasswords no
#Con esta opción, solo permite validación con la  “passphrase” ssh
ChallengeResponseAuthentication no

4. Funcionamiento de SSH

Se explica el funcionamiento básico de ssh

En el ejemplo que vemos en esta imagen, estamos intentando establecer una conexión ssh con el servidor, pero a la hora de introducir la passphrase le damos enter y no introducimos nada.

No nos da la opción de probar con la clave que tenemos como usuario en el servidor, y nos cierra la conexión.

Conexión ssh

Al establecer la conexión se ha dado cuenta de que el usuario pedro tiene la cable publica de ssh configurada, y ha permitido el intento de conexión, aunque luego este intento ha fracasado al no introducir la passphrase.

Si un usuario que no tiene configurada la clave publica en el servidor intenta conectarse el servidor no permite la conexión.


Conexión ssh

Utilizando SCP, podemos copiar ficheros desde nuestra maquina al servidor y viceversa.
Esto es muy cómodo a la hora de hacer copias de seguridad. Por ejemplo, en el caso en que tengamos un servidor en la DMZ y no tengamos sistema de backup en esa maquina.

Generalmente, la red interna dispone de sistemas de backup, con lo cual simplemente deberíamos hacer un scp para traernos los ficheros a copiar de la DMZ a la red interna y poder así copiarlos en el backup interno.



Conexión ssh

5. Generando las claves SSH

Se analiza el proceso de generación de claves públicas y privadas

Para poder utilizar SSH, primero debemos generar las claves. Al generarlas, obtenemos dos ficheros, uno con el contenido de la clave privada, y el otro con el contenido de la clave publica.

En el servidor SSH pondremos nuestra clave publica, y la clave privada deberemos guardarla y tendremos cuidado de no dársela a nadie.

De esta forma, si tuviéramos 5 servidores a gestionar, configuraríamos nuestra clave publica en los 5, y a través de la clave privada configurada en nuestra maquina, accederíamos a todos los servidores sin ningún problema.

Generando las claves en Linux

Para crear las claves, tenemos que estar validados como el usuario que las va a utilizar. Si las generamos como root, solo el root podrá utilizarlas.

ssh-keygen -t rsa

aceptamos la carpeta que nos propondrá dentro del home ~/.ssh/id_rsa

Luego introducimos la clave ssh o paraphrase que nos pide. Conviene que esta clave sea distinta a la que tenemos como usuarios en el servidor.

Tras hacer esto, genera dos ficheros:

  • Clave privada: ~/.ssh/id_rsa
  • Clave publica: ~/.ssh/id_rsa.pub


Luego hay que modificar los permisos de la carpeta ssh:

chmod 755 ~/.ssh.

Configuración putty


Generando claves en Windows

Con un PC Windows podemos ser clientes de ssh, para lo cual utilizaremos putty.

Putty es un cliente ssh creado por los de OpenSSH para sistemas windows. Permite SSH1 y SSH2, pero no solo eso, también nos permite entre otras cosas utilizar un programa llamado PSCP que nos da la funcionalidad de scp.

http://www.openssh.org/windows.html

Podemos descargar Putty directamente desde esta pagina: http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

Putty no es un solo programa, sino un conjunto de programa. Uno de ellos, el llamado puttygen.exe es el que nos permite generar las claves.

Configuración putty
Le




diremos que genere una clave SSH2-RSA de 1024 bits.

Dejaremos como están las opciones por defecto.

Pulsaremos el botón “Generate” y moveremos el ratón sobre la ventana, así el programa ira generando la clave.

Configuración putty

Una vez hecho esto, nos pide que introduzcamos la passphrase . Esta Passphrase es la clave que utilizaremos al conectarnos vía ssh con estas claves. Al conectarnos, no utilizaremos la clave que tenemos en el servidor como usuarios, sino que utilizaremos esta passphrase.

Configuración putty

Ahora solo nos falta guardar las claves. Recordad que la clave pública es la que dejaremos en los servidores, y no hay miedo de perderla, pero la clave privada debe estar bien guardada y solo nosotros debemos tener acceso a ella.

La clave privada la guarda en formato ppk, un formato que utiliza el putty.

Configuración putty

Podemos guardar la clave publica en un fichero, o copiarlo de la ventana del putty y pegarla en un fichero de texto.

Configuración putty

Copiar la clave publica en el servidor

Nos falta copiar la clave publica en el servidor al que queremos conectarnos. Hay que copiarla en el fichero ~/.ssh/authorized_keys del servidor.

Esto es importante. Es imprescindible copiar y pegar bien el texto, ya que un error en un caracter nos hará imposible establecer la conexión.

Si hemos generado la clave en Linux, tenemos que copiar el contenido del fichero ~/.ssh/id_rsa.pub generado en nuestra maquina al fichero ~/.ssh/authorized_keys del servidor.

Si hemos generado la clave con puttygen.exe, copiamos el contenido de la clave de la ventana del programa y la pegamos en el fichero ~/.ssh/authorized_keys del servidor.

Si en el servidor no existe el fichero ~/.ssh/authorized_keys lo creamos.

6. Créditos y licencia

Información sobre los recursos utilizados para crear este manual

Este manual se ha generado utilizando software libre:


Las fuentes de datos consultadas para elaborar el documento son las siguientes:

 

Autor:

Pedro Arreitunandia

Fecha:

11 mayo del 2005

Licencia: Creative Commons by-sa/2.0

7. Encuesta final sobre el curso

Una encuesta para recoger tus impresiones sobre el curso. Nos ayudará a mejorar. Muchas gracias por rellenarla

7.1. Tus comentarios al manual / Curso

Agradeceríamos te tomaras un par de minutos para rellenar esta mini-encuesta que nos ayudará a mejorar.

Anuncios Google