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/