Use o navegador real em vez do w3m nas conexões SSH

10

Estou usando o Ubuntu como sistema operacional para desktop e servidor. Quando estou logado no servidor via sshon terminale tenho que visualizar uma página da web (host local) no servidor, uso w3m ( w3m localhost).

Infelizmente, o w3m não é tão fácil de manusear, pois a página possui alguns menus grandes e usa jQuery. Por isso, estou pensando se é possível usar um navegador na minha área de trabalho para conectar-se ao servidor via SSH com um navegador real (Firefox ou Chrome).

Basicamente, seria necessário conectar-se com um navegador na minha área de trabalho ao servidor via SSH com usernamee password, e abrir nesse servidor localhost.

Isso é possível por padrão ou existem complementos para o Firefox / Chrome? Eu preferiria o Firefox.

Cova
fonte
Não é uma resposta para sua pergunta, mas ... que tal usar o encaminhamento do X?
Javier Rivera
1
Por que você não pode se conectar ao servidor remoto via http? Você precisa especificamente da solicitação para se originar do host local para fins de teste? O encaminhamento de @Javier X, especialmente para o Firefox, é pesado em largura de banda e eu não o recomendaria para conexões não locais.
Carsten Thiel
Por um lado, para fins de teste, ele precisa ser um host local. Por outro lado, o servidor remoto não está na rede local e não pode ser acessado através de http normal.
Pit
Sim, largura de banda é uma preocupação quando o encaminhamento de X.
Javier Rivera

Respostas:

14

Use o encaminhamento de porta ssh.

Conecte-se ao servidor remoto com algo parecido com isto:

ssh -L 8080:localhost:80 user@remoteserver

Agora, aponte seu navegador local para localhost: 8080. Ele deve ser encaminhado para localhost: 80 no servidor remoto.

Javier Rivera
fonte
Acabei de testar isso em um servidor na minha rede local e parece funcionar. Vou testá-lo mais tarde com o servidor remoto.
Pit
6

PARTE 1

Faça um proxy de meias com ssh!

ssh -D 9999 user@remoteserver

Agora abra suas preferências do Firefox, vá para Avançado> Rede> Configurações. Selecione Configuração manual do proxy. Coloque o host local para o host SOCKS, coloque 9999 para a porta. Teste-o em http://whatismyip.org ou em algum site similar.

Como você disse que está tentando acessar uma página da Web no localhost (em relação ao seu servidor), não convém excluir o localhost e o 127.0.0.1 do uso do proxy. Claro, você pode apenas usar o ip local do servidor.

Se você não gostar da minha explicação, esses links movimentaram minha memória enquanto escrevia isso:

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

O erro que você recebeu não channel 3: open failed: connect failed: Connection refusedtem absolutamente nada a ver com o ssh. Aparentemente, você está tentando acessar alguma coisa do mysql. Isso tem um desafio extra, porque o mysql bloqueia o acesso dos túneis ssh por padrão. Eu não faço mysql, então não sei do que estou falando pelo resto disso. Estou apenas citando os bits relevantes do link no final, que você deve ler.

Abra /etc/mysql/my.cnf e procure a seção [mysqld]. Se você vir uma linha "pular rede", comente-a. Adicione "bind-address = 127.0.0.1" (sem as aspas, é claro).

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

Parte 3

A solução de Javier ssh -L 8080:localhost:80 user@remoteserveré fantástica se você só precisa acessar o único local. Ele permite que você acesse o host local e deixa o resto da sua Internet em paz. Minha solução com o ssh -D vai mais longe e, na verdade, direciona todas as suas solicitações HTTP para o servidor remoto. Obviamente você pode não querer isso. Mas achei útil quando eu queria acesso http a todas as máquinas em uma rede ou quando não queria que minhas solicitações http passassem pela rede na qual estou conectado (ou seja, serviços bancários on-line na starbucks. Todo o meu tráfego vai através do túnel ssh até minha internet doméstica.)

djeikyb
fonte
Em solicitando 'localhost' no firefox eu recebo um erro no terminal onde abri a conexão ssh: channel 3: open failed: connect failed: Connection refused. Não tive tempo de procurar, mas talvez você saiba o que poderia ser?
Pit
Acabei de ver na página de manual do ssh que você precisa ser root para usar a -Dopção Esse é o motivo pelo qual não funcionou e não funcionará, pois não consigo conectar-me como root ao servidor (por motivos de segurança).
Pit
O que? Eu usei isso o tempo todo como um usuário normal nas duas extremidades do túnel. Ah eu vejo. Você deve ser root se tentar usar uma porta como 80 ou 21 ou qualquer outra porta reservada da IANA. Qualquer coisa acima de 1024 deve ficar bem. Eu acho que o erro tem a ver com o bloqueio do ssh.conf para a frente. Estou pesquisando nesse sentido agora.
djeikyb 26/01
Eu pesquisei o seu erro e vim com este artigo que diz que o mysql tem um "recurso" de segurança que bloqueia o acesso da porta para a frente por padrão. debuntu.org/…
djeikyb
2

Você pode usar o encaminhamento do X através do SSH para que qualquer aplicativo X que você executa no servidor apareça no seu computador pessoal.

  1. Ao conectar-se com o SSH ao servidor, adicione o sinalizador -X. Por exemplo ssh -X myserver,.
  2. Instale um navegador da GUI no servidor e simplesmente execute-o. A saída aparecerá no seu computador pessoal através do encaminhamento X e da conexão SSH segura.
user4124
fonte
Como Carsten mencionou em seu comentário à minha pergunta e a respeito de o servidor remoto não estar na minha rede local, e quanto à largura de banda?
Pit
Você precisaria definir seus requisitos de largura de banda. Caso contrário, você pode tentar e ver como funciona.
precisa saber é o seguinte