duda ssh

chanquete

vamos a ver, para conectarme con otro equipo el comando sería ssh -L (si es gráfico -X) [email protected] (nombre@ipdel equipo que nos queremos conectar).

Tengo estas 2 duidas:

¿como establecre una sesión ssh con el usuario "juan" en la máquina "granada" para abrir la aplicación chrome?

ssh -L 8080:localhost:80 juan@Granada

¿Como establecerías un tunel ssh para la aplicación telnet (máquina destino 10.1.0.1

ssh - t -L 2323:localhost:23 10.1.0.1

A ver, en el primer caso supongo que el 8080 es el puerto de mi máquina (que puede ser cualquiera para realizar la conexión, el 80 es el puerto http. juan es el usuario y granada el nombre de la máquina (que podría ser una ip). Lo que no entiendo es el localhost. En el primer y en el segundo caso. No sé cuándo se ponen, ni por qué se pone.

En el segundo caso el -t supongo que será de telnet, pero sigo teniendo la duda del localhost.

¿Se pone cada vez que queramos conectarnos a un puerto determinado de la otra máquina?

elkaoD

http://unixhelp.ed.ac.uk/CGI/man-cgi?ssh+1

El primero no está ni remotamente (pun intended) bien.

EDIT: venga me siento generoso aunque creo que te estoy haciendo un flaco favor dándote las respuestas (a no ser que tengas la decencia de entender este post, y deberías por tu bien y por el mío que me ha quedado largo de cojones y no me gusta escribir para nada).

En primer lugar ignora todo lo que creas que sabes porque la verdad tienes un popurrí importante de conceptos mal batidos. En segundo lugar lee el link que pongo arriba y repasa los comentarios de abajo (no copypastées) porque te vas a quedar igual.


"para conectarme con otro equipo el comando sería ssh -L (si es gráfico -X) [email protected] (nombre@ipdel equipo que nos queremos conectar)."

No, te sobra el -L, que sólo se usa para port forwarding y ni siquiera te funcionará porque la sintaxis es "-L port:host:remoteport", siendo las tres partes obligatorias.


"¿como establecre una sesión ssh con el usuario "juan" en la máquina "granada" para abrir la aplicación chrome?

ssh -L 8080:localhost:80 juan@Granada"

No. Simplemente no. Ahí lo que estás haciendo es que tu puerto 8080 redirija al 80 de Granada, pero eso no es lo que quieres.

"ssh juan@Granada" sería el comando para conectar a Granada con el ususario juan.

"ssh -X juan@Granada" sería el comando para conectar a Granada con el usuario juan habilitando el forwarding X11.

"ssh -X juan@Granada chromium-browser" sería para abrir Chromium (que no Chrome porque no hay Chrome en Linux).


"¿Como establecerías un tunel ssh para la aplicación telnet (máquina destino 10.1.0.1

ssh - t -L 2323:localhost:23 10.1.0.1"

Fatal de los fatales. Este comando tal y como lo has puesto te redirige desde el puerto local 2323 al puerto remoto 23 y ejecuta el comando 10.1.0.1 (¿ejecutas una IP?...) Como ves no tiene mucho sentido. Además, tampoco tiene sentido que redirijas 2323 a localhost:23 porque localhost es la máquina local, así que estás redirigiendo la máquina A SÍ MISMA.

Además te sobra un espacio entre el "-" y la "t".

El comando correcto sería:

"ssh -L 2323:10.1.0.1:23" para redirigir el puerto local 2323 al puerto remoto 23 en 10.1.0.1.

Lo del -t en este caso es absurdo especificarlo. No voy a entrar en por qué pero básicamente no necesitas una TTY para hacer el forwarding.


"A ver, en el primer caso supongo que el 8080 es el puerto de mi máquina (que puede ser cualquiera para realizar la conexión"

MEEEEC. Mira arriba, era innecesario. Cuando te estás conectando por SSH sin hacer forwarding no necesitas (y de hecho no puedes) especificar el puerto local.


"Lo que no entiendo es el localhost. En el primer y en el segundo caso."

localhost es tu máquina SIEMPRE. SIEMPRE, SIEMPRE, SIEMPRE. Por siempre jamás de los jamases (hasta que alguien edite /etc/hosts xD) Es el equivalente a 127.0.0.1.

Como comprenderás es absurdo conectarte remotamente a ti mismo. ¿Igual pretendes preguntar otra cosa? Porque no entiendo dónde tendría cabida localhost aquí.


"En el segundo caso el -t supongo que será de telnet"

No. Si te vas a las man pages de ssh (que es lo que deberías haber hecho ANTES de abrir este post) http://unixhelp.ed.ac.uk/CGI/man-cgi?ssh+1 (o "man ssh" en la consola) verás que es para reservar una pseudo-TTY (un pseudo-terminal).

Cuando tu haces "ssh user@host" siempre se reserva el pseudo terminal (es donde escribes) pero sin embargo cuando haces "ssh user@host comando" no se reserva terminal alguno sino que la salida del comando se te envía en forma de texto.

¿Para qué usar -t entonces? Algunos programas tienen salida por consola pero esta no es texto (por ejemplo "screen" o "top" ) por lo que necesitas indicar que no sólo quieres ejecutar el comando y recibir el texto sino que además quieres reservar el pseudo-terminal.

Para más información con respecto al pseudo-terminal http://lugatgt.org/2009/10/28/ssh-tips-and-tricks-2/

2 1 respuesta
Merkury

#2 Pedazo respuesta.

#1 Como pretendes hacer conexiones SSH si ni siquiera sabes que es localhost?

En fin lo de mucha gente que pregunta aquí es lo mas bizarro que he visto en mi puta vida (y eso que una vez me preguntaron como grabar CDs con un archivador de esos que iban en la bahía de la torre con varias bandejas!)

2 respuestas
Spacelord

#3 Anda que no canta que está preguntando ejercicios de clase... XDDD

1 respuesta
elkaoD

#3 #4 lo peor de todo es que sospecho que la culpa de la situación no la tiene él, if you know what I mean.

2 respuestas
Merkury

#5 Hombre, el no saber no es delito, pero muchas veces la gente en vez de investigar, probar romper y volver a romper (que es lo mas divertido desde mi punto de vista) van a lo facil google + conexion ssh = gg

Spacelord

#5 El problema es la diferencia abismal entre los conocimientos y el ejercicio. Normalmente, cuando te atascas en un problema, es porque se te está pasando algo por alto y no eres capaz de verlo, pero en general tienes más o menos una idea correcta de como deberías solucionar el tema. Y cuando por fin das con la solución, o te explican como se hace, lo entiendes a la primera perfectamente.

En cambio, preguntar dudas sobre el protocolo SSH sin saber ni lo que es el localhost es muy duro. O no has ido a clase desde el año pasado o pasa algo muy raro.

chanquete

Pues os comento que es lo como lo estoy estudiando y las respuestas supuestamente son correctas.

No es que no entienda que localhost es la 127.0.0.1

2 respuestas
elkaoD

#8 "las respuestas supuestamente son correctas"

Pues huye de donde-quiera-que-estudies porque estás "desaprendiendo". En #1 no has dado una y como comprenderás ni yo ni el manual de ssh nos equivocamos.

1
Merkury

#8 ¿En que universo paralelo dices que estudias?

Usuarios habituales

  • Merkury
  • elkaoD
  • chanquete
  • Spacelord