Usando SSH


SSH

Si trabajas en un entorno de red muy probablemente necesitarás administrar servidores, ejecutar aplicaciones o copiar archivo de forma remota y segura. Para estos contamos con el protocolo ssh el cual permite intercambio de información a través de un canal seguro entre dos dispositivos de red, utilizando criptografía de llave pública para autenticar computadoras remotas y usuarios.  Algunas de las características de ssh son las siguientes:

  • Permite la administración de computadoras de forma remota.
  • Puede usarse como alternativa a FTP (usando SFTP).
  • Es el sustituto de las órdenes r (rcp, rsh, rlogin y telnet).
  • Permite el redireccionamiento de puertos y tunneling.
  • Puede ser usado para ejecutar órdenes en servidores remotos.
  • Permite correr aplicaciones gráficas en un servidor remoto y mostrarlas en la máquina local.
  • Por omisión escucha en el puerto tcp 22.

Instalación de SSH

En Debian puede instalarse tanto el cliente como el servidor de la siguiente manera:

aptitude install openssh-client openssh-server

Acceder a equipo remotos

Para acceder a un equipo remoto al cual le conocemos su nombre o dirección IP, podemos usar lo siguiente:

ssh [email protected]
ssh [email protected]

Donde servidor.com debe ser un nombre que se pueda traducir a una dirección IP, bien por DNS o a través del archivo /etc/hosts. Por otro lado, si en el servidor y en la máquina cliente existen la misma cuenta de usuario con que se está trabajando, puede omitirse el nombre de usuario y asumirá que es el usuario actual:

ssh 192.168.1.30

Ejecución de órdenes de forma remota

Para ejecutar una orden de forma remota, puede usarse la siguiente sintaxis:

ssh [email protected] comando
ssh [email protected] comando

Donde comando se refiere a la orden o ruta absoluta del programa a ejecutar. Ejemplos:

ssh [email protected] /usr/local/bin/respaldo
ssh [email protected] ls > listado.tx

Ejecución de aplicaciones gráficas remotas

En ciertas ocasiones nos interesa ejecutar aplicaciones gráficas en máquinas remotas pero que la salida de dicha aplicaciones se nos muestre de forma local. Esto puede conseguirse en ssh con la opción -X:

ssh -X [email protected] aplicación
ssh -X [email protected] aplicación

Por ejemplo, si queremos ejecutar desde un servidor remoto una aplicación como el Firefox podríamos escribir:

ssh -X [email protected] firefox

Nota: Para poder desplegar aplicaciones gráficas de forma remota, en el servidor se debe habilitar la siguiente opción en el archivo /etc/ssh/sshd_config:

X11Forwarding yes

Copiando archivos de forma remota

Más temprano que tarde terminaremos copiando archivos entre estaciones de trabajo y,  para evitar copiar en medios temporales (como pendrives), puede usarse directamente el copiado entre máquinas. Para eso podemos seguir esta sintaxis:

Copiar desde la máquina local a un servidor remoto:

scp /ruta/local/al/archivo [email protected]:/ruta/remota
scp /ruta/local/al/archivo [email protected]:/ruta/remota

Ejemplo:

scp /etc/passwd [email protected]:/home/lgallard/Escritorio

Copiar desde un servidor remoto a la máquina local:

scp [email protected]:/ruta/remota/del/archivo /ruta/local
scp [email protected]:/ruta/remota/del/archivo /ruta/local

Ejemplo:

scp [email protected]:/etc/shadow .

Referencias

Artículos relacionados:

  1. Uso de ssh como unidad de red
  2. Agregar repositorios de Ubuntu a cron-apt en Debian
  3. Agregar repositorio de VirtualBox a apt-cacher
  4. Jugar con el PSP en el monitor usando Linux
  5. Agregar repositorio de Ubuntu a apt-cacher

,

  1. avatar

    #1 by dark_sasuke on 06/08/2010 - 1:26

    Usar SSH es excelente :) … yo lo uso bastante para administrar un VPS (Con debian :) )