Archive

Posts Tagged ‘Ssh’

SSH Sin Contraseña

febrero 4, 2010 2 comentarios

Situación:

Queremos acceder mediante ssh con el usuario root y sin contraseña desde el host server1 al host server2.

Solución:

Estando como root en server1:

cd /root/.ssh

ssh-keygen -t rsa

Le damos a enter las veces que haga falta.

Esto nos crea dos archivos:

id_rsa: Nuestra clave privada.

id_rsa.pub: Nuestra clave pública.

Tenemos que coger el fichero id_rsa.pub y añadirlo en server2 al fichero /root/.ssh/authorized_keys.

Tenemos dos opciones.

Si en server2 no existe el fichero /root/.ssh/authorized_keys:

Desde server1:

scp id_rsa.pub root@server2:/root/.ssh/authorized_keys
De esta forma se crea el fichero authorized_keys con el valor de id_rsa.pub.

Si en server2 ya existe el fichero /root/.ssh/authorized_keys:

Desde server1:

scp id_rsa.pub root@server2:/tmp -> Copiamos el fichero authorized_keys a server2 en /tmp

Desde server2:

cat /tmp/id_rsa.pub >> /root/.ssh/authorized_keys -> Añadimos el contenido del fichero id_rsa.pub al final del archivo authorized_keys

Si ahora ejecutamos en server1 como usuario root:

ssh root@server2 -> Nos entra en server2 sin tener que introducir la contraseña.

Categorías:SysAdmin Etiquetas: ,

Mapear Puertos Sobre SSH

Situación1:

Tenemos 3 ordenadores:

Pc-1: Nuestro ordenador de trabajo con la ip 192.168.0.100

Pc-2: Un firewall-router con la ip 192.168.0.150 y la ip 192.168.1.150

Pc-3: Un servidor web con la ip 192.168.1.200

Queremos conectarnos al servidor web Pc-3 desde nuestro ordenador Pc-1, pero tenemos el problema de que Pc-1 no tiene acceso directamente a Pc-3 por políticas de seguridad.

Pero Pc-2 sí tiene acceso a Pc-3, lo cual vamos a aprovechar.

Solución:

Lo que vamos a hacer es mediante SSH crear en Pc-1 el puerto 2000 que  apuntará a Pc-3 al puerto 80 ( web ) pasando por Pc-2.

Para ello, desde Pc-1 hacemos:

ssh -l root Pc-2 -L 2000:Pc-3:80

Vamos a comentar este comando:

ssh -l root Pc-2: Nos conectamos desde Pc-1 a Pc-2 con el usuario root de Pc-2

-L 2000:Pc-3:80: Creamos en Pc-1 el puerto 2000 que apunta al puerto 80 de Pc-3 a través de Pc-2.

Ahora abrimos el navegador web en Pc-1 y tecleamos:

localhost:2000

Nos aparece la página web de Pc-3.

Situación 2:

Tenemos la misma situación que la anterior, pero queremos que los ordenadores que están en la misma red que Pc-1 también puedan acceder al servidor web Pc-3.

Con el comando anterior:

ssh -l root Pc-2 -L 2000:Pc-3:80

No podrían conectarse, ya que crea el puerto 2000 en Pc-1 en su interfaz localhost ( 127.0.0.1 ) por lo que sólo Pc-1 puede conectarse a Pc-3 a través de ese puerto.

Solución:

La solución es crear el puerto en Pc-1 en la interfaz de su red local que tiene la ip 192.168.0.100:

ssh -l root Pc-2 -L 192.168.0.100:2000:Pc-3:80

Como vemos lo único que cambia del comando es añadir la ip 192.168.0.100 en la que crear el puerto 2000 que apunta a Pc-3 al 80.

De esta forma tanto Pc-1 como el resto de ordenadores que están en su red podrían conectarse poniendo en el navegador web la dirección:

192.168.0.100:2000

Nota: En cualquiera de las 2 situaciones se añade el plus de que las comunicaciones contra el servidor web Pc-3 se hacen de forma segura, ya que viajan a través de un túnel ssh.

Categorías:SysAdmin Etiquetas: , ,