Iniciación a SSH

¿Qué es SSH?icono-ventanas

Conocido como Secure Shell (Intérprete Seguro de Órdenes) es el protocolo usado por excelencia para establecer conexión con máquinas remotas a través de una red.
Ampliamente extendido entre los usuarios, se caracteriza por permitir un control completo del ordenador servidor a través de un intérprete de órdenes o a través de X para ejecutar aplicaciones gráficas en caso de disponer de un servidor corriendo.

¿Por qué SSH?

SSH es un protocolo caracterizado por encriptar todas las conexiones que realiza, imposibilitando a terceros descifrar lo que se escribe durante la sesión, incluido el usuario y la contraseña.

Algo imposible con el protocolo FTP, donde la información viaja en texto plano.

Además, combinando los protocolos scp (Secure Copy) y ssfhs (Secure Shell FileSystem) con SSH conseguiremos una forma robusta e impenetrable de compartir ficheros e información entre equipos remotos.

Conociendo a OpenSSH

OpenSSH es un conjunto de aplicaciones que tiene como objetivo permitir comunicaciones cifradas a través de una red, usando para ello el protocolo SSH comentado anteriormente.

El proyecto está liderado por Theo de Raadt y es una alternativa libre a SSH.

Las aplicaciones que vienen incluidas son:

  • ssh – Reemplaza a rlogin y telnet.
  • scp – Reemplaza a rcp.
  • sftp – Reemplaza a ftp para copiar ficheros entre dos computadoras.
  • sshd – Servidor demonio SSH.
  • ssh-keygen – Herramienta usada para generar claves RSA y DSA usadas para mejorar la seguridad y autentificar al usuario que establece la conexión.
  • ssh-agent | ssh-add –  Herramienta para autentificar de forma más sencilla, sin necesidad de estar continuamente el passhrase usado como clave.
  • ssh-keyscan – Escanea una lista de clientes y recoge sus claves públicas.

Clientes SSH

Si decides no usar OpenSSH desde Linux, siempre puedes usar alguna de estas aplicaciones libres:

  • OSSH – A diferencia de OpenSSH que añade el protocolo SSH2 y extiende el soporte de SSH1. OSSH únicamente implementa SSH1.
  • LSH/psst – Implementación libre del protocolo SSH2, estandarizado actualmente por el grupo de trabajo IETF SECSH.
  • Dropbear –  Pequeño servidor SSH2 y cliente. Que funciona bajo varias plataformas basadas en POSIX.

Para Windows, puedes encontrar:

  • PuTTY – Implementación del protocolo SSH1+SSH2, posiblemente sea el cliente más extendido y usado entre los usuarios.
  • WinSCP – GUI basada en sftp y scp. El núcleo que sustenta su protocolo SSH está basado en PuTTY.
  • FileZilla – Potente cliente FTP. Diseñado pensando en la usabilidad y facilidad.

No obstante para este tutorial y los venideros, se usará OpenSSH (Linux)/PuTTY (Windows).

Instalación de OpenSSH

Algunas distribuciones traen instalado por defecto un cliente SSH, no obstante explicaremos como realizarla para un sistema Ubuntu.

Instalando a través de terminal

  • Para instalar el cliente:         sudo apt-get install openssh-client
  • Para instalar el servidor:       sudo apt-get install openssh-server

Primeros pasos con SSH

  • Para iniciar el servidor SSH:              service ssh start
  • Para parar el servidor SSH:               service ssh stop
  • Para reiniciar el servidor SSH:          service ssh restart

Conectándonos a un servidor remoto (Linux) desde un cliente (Linux)

Primero descubramos qué dirección IP tenemos en el servidor. Para ello desde una ventana de terminal escribimos:

/sbin/ifconfig

Nos aseguramos de que el servicio esté ejecutándose:

service ssh start

Y ahora podemos dirigirnos a nuestro cliente y establecer una conexión remota al equipo que ejerce de servidor. Basta con escribir la siguiente orden en la terminal:

ssh usuario_remoto@host_remoto

Dónde:

  • usuario_remoto – Será el nombre de usuario con el que queremos iniciar sesión. Debes tener en cuenta que si no está registrado en el equipo, no podrás iniciar sesión con él.
  • host_remoto – Es la dirección del equipo que ejerce como servidor. Ahí es donde pondremos la dirección IP que hemos obtenido antes.

La primera vez que establezcas conexión el sistema nos pedirá confirmación, bastará con decir “yes” y una vez introducida la contraseña correcta para el usuario solicitado, nos encontraremos identificados en el equipo remoto.

Los comandos, programas y scripts que lancemos tras conectarnos se ejecutarán en la máquina remota, utilizando los recursos de esta (CPU, memoria, disco, etc…).

Recuerda que podrás hacer todo aquello que se contemple bajo los permisos que posea el usuario con el que hayas iniciado sesión.

Establezcamos una conexión que nos permita ejecutar aplicaciones gráficas.

Ahora que hemos visto cómo conectarnos y trabajar desde nuestra ventana de terminal, vamos a ir un poco más allá, y vamos a ejecutar aplicaciones gráficas.

Un método bastante efectivo consiste en utilizar un túnel SSH para encapsular el protocolo X11, permitiendo transmitir la información de manera segura y sin crear conflictos con los cortafuegos.

Pero para ello debemos configurar un par de parámetros en el fichero sshd_config:

X11Forwarding    yes
AllowTcpForwarding    yes

Con X11Forwarding especificamos si se permite el reenvío por X11. El valor por defecto es ‘yes’. Desactivarlo en ningún momento ayudará a mejorar la seguridad del servidor.

Y lo que intentamos conseguir activando dicha directiva es permitir ejecutar aplicaciones gráficas en el servidor remoto. Recordad que X es un sistema de ventanas creado para dotar de interfaz gráfica a los sistemas Unix.

Por otro lado con AllowTcpForwarding especificamos si se permite el reenvío a través del protocolo TCP. Al igual que pasaba con X11, desactivarlo, en ningún momento proveerá mayor seguridad a nuestro servidor. Su valor por defecto es ‘yes’.

Una vez hecho esto, ya podemos iniciar una sesión SSH y ejecutar aplicaciones gráficas. Para ello bastará con escribir en nuestra terminal:

ssh -X -Y usuario_remoto@host_remota

  • -X (X11 forwarding)
  • -Y (X11 trusted forwarding)

Ahora podremos ejecutar cualquier aplicación que se encuentre instalada en el servidor. Reproduzcamos una película con mplayer por ejemplo:

mplayer nombre_película

Recuerda que los recursos se tomarán del equipo donde te encuentres conectado.

Anuncios

  1. 1 Iniciación a SSH | Linux Zone

    […] realizado por z3r0s para Linux Zone. Ver original aquí. « Slax […]

  2. 2 Iniciación a SSH | Full-Linux.com

    […] Artículo realizado por z3r0s para Linux Zone. Ver original aquí. […]

  3. 3 scp, transmitiendo información de forma segura « Linux Code

    […] 25, 2009 in LinuxTags: Linux, OpenSSH, scp, ssh Hace unos días explicábamos como instalar en nuestro equipo OpenSSH. Hoy vamos a ver cómo utilizar […]

  4. 4 Iniciación a SSH | Tutoriales de Informática

    […] Artículo realizado por z3r0s para Linux Zone. Ver original aquí. […]

  5. 5 Iniciación a SSH | Manuales y Tutoriales

    […] Artículo realizado por z3r0s para Linux Zone. Ver original aquí. […]




Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s



A %d blogueros les gusta esto: