Aplicaciones Gráficas con SSH en Red

Este es uno de los trucos que aprendí primero con SSH. La mayoría de la gente que usa SSH lo hace porque puede administrar servidores a através de este poderoso servicio. Algo que muchos no saben es que se puede ejecutar aplicaciones gráficas a través de una red con ssh y esto es mucho más sencillo de lo que nos podríamos imaginar.
Un caso simple podría ser que estoy en una red pero estoy muy lejos de mi computadora. Tengo la necesidad de acceder a mi correo electrónico que le ejecuto con Thunderbird. El camando para lograr esto es tan simple como:

ssh -X usuario@ipservidor thunderbird

Ahora que tal si queremos ejecutar más de una aplicación gráfica. Podríamos utilizar una sola sesión de ssh para abrir varias aplicaciones.

ssh -X usuario@ipservidor
thunderbird &
oowriter &
gnome-calculator& Sigue leyendo Aplicaciones Gráficas con SSH en Red

Artículos relacionados

  • No existen artículos relacionados

Túneles SSH (parte 2)

En el artículo anterior expliqué como usar un tunel ssh para acceder a un servicio remoto  que no es accesible en mi computador, pero sí es accesible desde un servidor al cual puedo ingresar. Ahora aprenderemos a hacer lo opuesto. Vamos a compartir servicios de mi red interna o mi computadora en otra red. Lo más probable es que sea el Internet. Al igual que el artículo anterior, vamos a explicar esta utilidad con ejemplos.

Ejemplo #1: Acceder con ssh a computador con ip privado

Vamos a suponer el siguiente caso práctico. Mi mamá es una usuaria de GNU/Linux y tiene algún problema en su computador. Ella tiene su computadora en la casa y no tiene ip pública ni la menor idea de lo que es un ip. Su hijo tiene algo de experiencia le puede ayudar. Para esto con mucha paciencia le va a decir» mami vaya a accesorios terminal y escribe lo siguiente:

ssh -R *:8080:localhost:22 usuarioremoto@servidorremoto.com

Mi mamá no tiene porque entender este comando, pero ustedes sí. El * quiere decir que vamos a ser accesibles desde cualquier ip que tenga mi servidor remoto. El 8080 es el puerto que utilizaremos en el servidor remoto y localhost:22 quiere decir que vamos a hacer accesible el puerto 22 de mi máquina local. La segunda parte del comando quiere decir a que servidor ingresamos y con que usuario.
En otras palabras mi mamá esta ingresando a mi servidor y publicando el puerto 22 de su computador en el puerto 8080. Obviamente sin tener la menor idea de lo que esta haciendo. Sigue leyendo Túneles SSH (parte 2)

Artículos relacionados

  • No existen artículos relacionados

Túneles SSH (parte 1)

Durante mucho tiempo utilice GNU/Linux y ssh a diario, pero me tomo tiempo darme cuenta de la utilidad de los tuneles ssh. Es una herramienta super práctica que espero ilustrar su uso con este artículo. A mi cuando me explicaron no entendí para que me iba a servir, pero con unos ejemplos creo que es más fácil entender.

Básicamente un tunel ssh sirve para acceder a un servicio remoto a través de un canal ssh. Así utilizando ssh podríamos hacer cosas como acceder a un servidor smtp que suele estar bloqueado por proveedores de Internet. Se podría compartir un recurso de mi máquina local con ip privado al mundo a través de Internet. En fin se puede hacer muchísimo más que esto y ojalá por ahí comparta alguna otra experiencia interesante.

Redirigir un puerto remoto a mi red local

Para ilustrar esta idea voy poner allgunos ejemplos hipotéticos:

Ejemplo #1: Acceder a un pop3 bloqueado

Supongamos que usted tiene acceso a Internet y el proveedor de Internet tiene bloqueado el puerto 25. Necesita enviar un correo de urgencia, pero no lo puede hacer. Pues bien un tunel ssh es una solución rápida para solucionar este problema (siempre y cuando tenga un servidor donde pueda hacer ssh)

ssh -L 2525:localhost:25 usuario@servidorremoto.com

Sigue leyendo Túneles SSH (parte 1)

Artículos relacionados

  • No existen artículos relacionados

Ssh con claves Públicas y Privadas

La razón por la que escribo este artículo, es porque acabo de resolver un problema que se tiene con el pasar del tiempo. Cada vez se tiene que administrar más servidores y uno debe recordar mayor números de claves. Si uno usa la misma clave para todos los servidores, entonces se tiene un riesgo de seguridad porque si se rompe la clave en uno, se rompe en todos. Este mini how to es útil también si se desea hacer tareas automatizadas y no quieren que se requiera el uso de contraseña para ssh (ej. sincronización con rsync).

La idea es la siguiente, vamos a crear una clave privada que funcionará como nuestra contraseña para ingresar a los servidores que necesitemos. En cada servidor copiaremos nuestra clave pública y podremos ingresar a ellos. Este sistema, bien utilizado es mucho más seguro que utilizar contraseñas.

Crear el par de claves públicas y privadas:

ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):

Damos enter, para que las llaves se guarden en ~/.ssh

Enter passphrase (empty for no passphrase):
Enter same passphrase again:

Aquí ponemos una contraseña para proteger nuestra clave privada. Así que cada vez que vayamos usar la clave privada nos pedirá esta clave. En caso de querer utilizar ssh sin clave, dejar vacío (solo recomendable para tareas automatizadas y teniendo en cuenta los riesgos.)

Your identification has been saved in /yo/.ssh/id_rsa.
Your public key has been saved in /yo/.ssh/id_rsa.pub.

Aquí nos dice el sistema donde ha guardado nuestra clave pública y privada. La cave privada la tenemos que cuidar. Si llega a malas manos podrían ingresar a nuestros servidores (sobre todo si no esta protegida con un passprhase), si la perdemos nosotros no podremos llegar a nuestros servidores. La clave pública la subimos a los servidores donde queremos ingresar.

Copiar clave pública a servidores:

scp ~/.ssh/id_rsa.pub usuario@servidorremoto.com:
ssh usuario@servidorremoto.com
cat id_rsa.pub >> .ssh/authorized_keys

Listo ahora podemos ingresar a servidor remoto utilizando la llave privada. Copiamos nuestra clave pública a todos los servidores que queremos hacer ssh.

Otra opción que yo no conocía, pero me la hizo notar Gerardo Barajas es usar el comando ssh-copy-id.

ssh-copy-id usuario@servidorremotocom

Artículos relacionados

  • No existen artículos relacionados

Instalación de Debian GNU/Linux (Lenny) en Imágenes

He estado jugando mucho con VirtualBox y varias distribuciones. Así que decidí guardar pantallazos de los procesos de instalación de las mismas para que los nuevos usuarios de GNU/Linux tenga una guía sobre como instalar.

En este artículo vamos a aprender a instalar Debian Lenny aunque lo más probable el procedimiento es el mismo o muy similar para futuras versiones. La instalación la haremos pensando en un usuario de escritorio por lo que separaremos el directorio /home en una segunda partición. De esta manera tengo todos los datos de los usuarios en una partición a parte que la puede mantener en el futuro así actualice el sistema operativo.

Explicaré un poco sobre lo que se nos pide en cada pantalla. Pero en realidad la explicación que ya trae el instalador será mucho más detallada que que yo explico en este artículo.

Esta es una guía básica sobre como instalar Debian. Si tiene miedo de hacerlo en una máquina real, siempre podrá practicar antes con software como Virtual Box.

Se selecciona la forma de instalar y otras opciones
Se selecciona la forma de instalar y otras opciones

Sigue leyendo Instalación de Debian GNU/Linux (Lenny) en Imágenes

Artículos relacionados

Instalar paquete de ELGG 1.6.1 en Español

En mis primeras instalaciones con ELGG tuve problemas al instalar el paquete de español. Así que comparto el como hacerlo.

Primero descargamos el paquete de ELGG en español. La versión que utilizo yo es la de el ELGG 1.6, cuando salga ELGG 1.7 probablemente esto cambiará en el futuro.

elinks http://community.elgg.org/action/plugins/download?release_guid=307310

Normalmente hubiera utilizado wget, pero por ser un link que se redirecciona algo falla. Probablemente sí se pueda hacer con wget, pero con elinks también. Otra opción es bajar el archivo localmente y luego subirlo al servidor.

Luego de descargar el archivo con elinks, tendremos una ventana blanca. Pulsamos la tecla ‘ctrl’ + la tecla ‘c’.

Creamos un directorio donde vamos a descomprimir los archivos:

mkdir traduccion-elgg

Entramos al directorio

cd traduccion-elgg

Movemos el archivo descargado al nuevo directorio

mv elgg_translation_es.zip traduccion-elgg/

Entramos al directorio

cd traduccion-elgg/

Se descomprime el archivo

unzip elgg_translation_es.zip

Ahora se copia el archivo de languages/es.php a su directorio en el servidor web. Podría ser algo como:

En mis primeras instalaciones con ELGG tuve problemas al instalar el paquete de español. Así que comparto el como hacerlo.

Primero descargamos el paquete de ELGG en español. La versión que utilizo yo es la de el ELGG 1.6, cuando salga ELGG 1.7 probablemente esto cambiará en el futuro.

elinks http://community.elgg.org/action/plugins/download?release_guid=307310

Normalmente hubiera utilizado wget, pero por ser un link que se redirecciona algo falla. Probablemente sí se pueda hacer con wget, pero con elinks también. Otra opción es bajar el archivo localmente y luego subirlo al servidor. Sigue leyendo Instalar paquete de ELGG 1.6.1 en Español

Artículos relacionados