SSH
De Wikiunix
| | Formatear Esta página necesita ser editada para cumplir los requisitos del wiki. |
| | To Do Esta página necesita ser completada. Puedes revisar todas las páginas por completar en este enlace. |
SSH es un protocolo estándar para el acceso a máquinas remotas de manera segura. Permite el acceso a una terminal remota de una máquina, a una aplicación gráfica remota utilizando el parámetro -X y al establecimiento de "túneles" seguros entre máquinas.
Contenido |
Configuración básica del servidor y cliente SSH
Del lado del servidor
- Instalar el paquete de nuestra distribución o compilar el programa.
- Al instalarse se genera una clave RSA que identificara a la máquina (ficheros /etc/ssh/ssh_host_{d,r}sa_key.pub). Cuando máquinas cliente intenten acceder a ésta, un dialogo les preguntará si se debe añadir la clave al fichero de claves conocidas (fichero known_hosts).
- Editar el fichero /etc/ssh/sshd_config:
| Opción | Descripción |
| Port | Puerto por el que escuchará el servidor. |
| PermitRootLogin | [yes/no] Establece si se permitirá acceder mediante usuario root. |
| PasswordAuthentication | [yes/no] Establece si se permitirá acceder mediante contraseña. SSH permite el acceso mediante clave pública. |
| MaxSessions | Número de sesiones SSH que se permiten. |
- Una vez configurado levanta el servicio:
- upstart:
- start ssh
- init:
- /etc/init.d/ssh start
Del lado del cliente
Hay una configuración de cliente global en /etc/ssh/ssh_config, puedes ver los parámetros de configuración en el manual.
Adicionalmente, cada usuario, tiene en su directorio casa dentro de .ssh un fichero ~/.ssh/config que determina la configuración de cliente para ese usuario.
Otros ficheros dentro del directorio .ssh
- ~/.ssh/known_hosts fichero que almacena las máquinas conocidas de ese usuario.
- ~/.ssh/authorized_keys fichero dónde se listan las claves públicas que tienen acceso a ésta máquina y usuario.
- ~/.ssh/is_{d,r}sa.pub clave pública del usuario generada mediante ssh-keygen.
Ejemplos de uso
Acceder a una terminal mediante ssh
Ejecutar un comando remoto mediante ssh
Generar clave pública utilizando ssh-keygen
Se puede invocar sin parámetros. Obteniendo una salida como la siguiente:
~$ ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/home/user/.ssh/id_rsa): another Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in another. Your public key has been saved in another.pub. The key fingerprint is: 38:1e:dc:d1:54:7c:03:5b:af:ed:39:ce:2f:99:55:74 mort@Canadan The key's randomart image is: +--[ RSA 2048]----+ | .oo.. | | o .oo.E| | . . .. oo| | . o . o.| | = S . o| | . o .o| | . *.| | * .| | +o| +-----------------+
Con los parámetros por defecto ssh-keygen generará una clave RSA, puede modificarse con el parámetro -t el tipo de clave a generar. En el ejemplo expuesto creará dos ficheros another y another.pub. Donde another es la clave privada y es un fichero que sólo debería poder ser leido por el usuario. Y another.pub que es la clave pública que transmitiremos a otras máquinas a las que queramos acceder remotamente.
El comentario (en éste caso usuario@maquina) no es importante sólo sirve para identificar para que se usará la clave pública, puede modificarse con el parámetro -c de ssh-keygen, por defecto se toma el usuario@host del sistema.
Acceder a una máquina mediante clave pública
Para conseguirlo tenemos que seguir los siguientes pasos:
- añadir nuestra clave pública en el fichero authorized_keys de la máquina a la que queramos acceder. Si tenemos acceso a la máquina vía SSH mediante autenticación de usuario/contraseña podemos hacerlo nosotros mismos, sino tendremos que contactar con el administrador de la máquina.
- acceder ssh usuario@maquina
Acceder a una terminal con capacidad para lanzar una aplicación gráfica mediante ssh
Otros servicios sobre ssh
- scp: realiza copias de archivos en red de manera segura.
- sftp: transferencia de ficheros de manera segura.
- tunelización.