Use un navegador real en lugar de w3m en conexiones SSH

10

Estoy usando Ubuntu como sistema operativo de escritorio y servidor. Cuando inicio sesión en el servidor a través de sshon terminaly tengo que ver una página web (localhost) en el servidor, uso w3m ( w3m localhost).

Desafortunadamente, w3m no es tan fácil de manejar, ya que la página tiene algunos menús grandes y usa jQuery. Así que me pregunto si es posible usar un navegador en mi escritorio para conectarme al servidor a través de SSH con un navegador real (Firefox o Chrome).

Básicamente, requeriría conectarme con un navegador en mi escritorio al servidor a través de SSH con usernamey password, y abrir en ese servidor localhost.

¿Es esto posible por defecto, o hay algún complemento para Firefox / Chrome? Prefiero Firefox

Pozo
fuente
No es una respuesta a su pregunta, pero ... ¿qué pasa con el reenvío X?
Javier Rivera
1
¿Por qué no puede conectarse al servidor remoto a través de http? ¿Necesita específicamente la solicitud para originarse en localhost con fines de prueba? El reenvío de @Javier X, especialmente para Firefox, tiene un gran ancho de banda y no lo recomendaría para conexiones no locales.
Carsten Thiel
Es, por un lado, para fines de prueba, por lo que debe ser localhost. Por otro lado, el servidor remoto no está en la red local y no se puede acceder a través de http normal.
Pit
Sí, el ancho de banda es una preocupación al reenviar X.
Javier Rivera

Respuestas:

14

Utilice el reenvío de puertos ssh.

Conéctese al servidor remoto con algo como esto:

ssh -L 8080:localhost:80 user@remoteserver

Ahora, apunte su navegador local a localhost: 8080. Debería reenviarse a localhost: 80 en el servidor remoto.

Javier Rivera
fuente
Acabo de probar esto en un servidor en mi red local, y parece funcionar. Lo probaré más tarde con el servidor remoto.
Hoyo
6

PARTE 1

¡Haz un proxy de calcetines con ssh!

ssh -D 9999 user@remoteserver

Ahora abra sus preferencias de Firefox, vaya a Avanzado> Red> Configuración. Seleccione Configuración manual del proxy. Ponga localhost para el host SOCKS, ponga 9999 para el puerto. Pruébelo yendo a http://whatismyip.org o algún sitio similar.

Como dijo que está intentando acceder a una página web en localhost (en relación con su servidor), es posible que no desee excluir localhost y 127.0.0.1 del uso del proxy. Por supuesto, puede usar la dirección IP local del servidor.

Si no le gusta mi explicación, estos enlaces activaron mi memoria mientras escribía esto:

http://linux.die.net/man/1/ssh

http://embraceubuntu.com/2006/12/08/ssh-tunnel-socks-proxy-forwarding-secure-browsing/

https://calomel.org/firefox_ssh_proxy.html

PARTE 2

El error que obtuvo no channel 3: open failed: connect failed: Connection refusedtiene absolutamente nada que ver con ssh. Aparentemente estás intentando acceder a algo de mysql. Esto tiene un desafío adicional, porque mysql bloquea el acceso desde túneles ssh por defecto. No hago mysql, así que no sé de qué estoy hablando para el resto de esto. Solo estoy citando los bits relevantes del enlace al final, que deberías leer.

Abra /etc/mysql/my.cnf y busque la sección [mysqld]. Si ve una línea "skip-networking", coméntela. Agregue "bind-address = 127.0.0.1" (sin las comillas, por supuesto).

http://www.debuntu.org/port-forwarding-and-channel-3-open-failed-connect-failed-Connection-refused

Parte 3

La solución de Javier ssh -L 8080:localhost:80 user@remoteserveres fantástica si solo necesita acceder a una ubicación. Le permite acceder a localhost y deja solo el resto de su Internet. Mi solución con ssh -D va más allá y en realidad dirigirá todas sus solicitudes http al servidor remoto. Obviamente, es posible que no quieras esto. Pero lo he encontrado útil cuando quería acceso http a todas las máquinas en una red, o cuando no quería que mis solicitudes http pasaran a través de la red a la que estoy conectado (es decir, banca en línea en starbucks. Todo mi tráfico va a través del túnel ssh a internet de mi casa).

djeikyb
fuente
En cuanto a solicitar 'localhost' en firefox me sale un error en la terminal donde abrí la conexión ssh: channel 3: open failed: connect failed: Connection refused. No tuve tiempo de buscarlo, pero ¿quizás sabes lo que podría ser?
Pit
Acabo de ver en la página de manual de ssh que necesitas ser root para usar la -Dopción. Esta es la razón por la que no funcionó y no funcionará, ya que no puedo conectarme como root al servidor (por razones de seguridad).
Pit
¿Qué? Usé esto todo el tiempo como usuario normal en ambos extremos del túnel. Oh ya veo. Debe ser root si intenta usar un puerto como 80, 21 o cualquiera de los otros puertos reservados de IANA. Cualquier cosa por encima de 1024 debería estar bien. Creo que el error tiene que ver con el bloqueo de tu ssh.conf hacia adelante. Estoy buscando en Google a lo largo de esas líneas ahora.
djeikyb
Busqué en Google su error y se me ocurrió este artículo que dice que mysql tiene una "característica" de seguridad que bloquea el acceso desde el puerto hacia adelante de forma predeterminada. debuntu.org/…
djeikyb
2

Puede usar el reenvío X a través de SSH para que cualquier aplicación X que ejecute en el servidor aparezca en su computadora personal.

  1. Al conectarse con SSH al servidor, agregue el indicador -X. Por ejemplo, ssh -X myserver.
  2. Instale un navegador GUI en el servidor y simplemente ejecútelo. La salida aparecerá en su computadora personal a través del reenvío X y la conexión segura SSH.
usuario4124
fuente
Como Carsten mencionó en su comentario a mi pregunta y con respecto a que el servidor remoto no está en mi red local, ¿qué pasa con el ancho de banda?
Pit
Debería definir sus requisitos de ancho de banda. De lo contrario, puede intentarlo y ver cómo funciona.
user4124