acessar página da web através do ssh

14

Preciso acessar o IEEE xplore, mas não tenho o direito de fazer o download fora do instituto.

Eu posso entrar no servidor do instituto via ssh,

Então, como posso acessar o IEEE xplore através do servidor do instituto via ssh?

Eu procurei soluções, uma resposta:

ssh -L 8080:localhost:80 user@remoteserver

e então ele diz:

Agora, aponte seu navegador local para localhost: 8080. Ele deve ser encaminhado para localhost: 80 no servidor remoto. ### Mas ainda não sei como configurar meu laptop, estou usando o chrome.

Eu aprecio muito a sua ajuda!

ulyssis2
fonte
Boa referência aqui: help.ubuntu.com/community/SSH/OpenSSH/PortForwarding
ThorSummoner

Respostas:

23

Primeiro método:

Lançar um túnel SSH

Para iniciar seu túnel SSH, basta abrir o terminal e conectar-se ao servidor remoto via SSH com os seguintes sinalizadores:

ssh -D 8080 -C -N [email protected]

Navegue na Web com seu túnel SSH (Chrome)

Agora, vamos começar a navegar na Web usando nosso novo túnel SSH.

  • Abra o Google Chrome
  • Selecione o ícone de chave inglesa no canto superior direito
  • Selecione 'Configurações'
  • Selecione 'Mostrar configurações avançadas ...'
  • Selecione 'Alterar configurações de proxy ...'
  • Selecione 'Proxy SOCKS'
  • Digite '127.0.0.1'
  • Digite a porta '8080'
  • Salve as alterações selecionando 'OK'

Pesquise no Google por "meu ip" e veja qual é o seu endereço IP agora.

Isso iniciará nosso túnel SSH na porta 8080 e roteará todo o tráfego (com segurança) através do servidor em example.com.

Saindo do túnel SSH

Para sair do túnel SSH, basta desativar o proxy SOCKS no seu navegador.

fonte

Segundo método:

Você pode fazer isso facilmente usando o Shellinabox

Verifique se você verificou o Universe Repository

Para instalar

 $ sudo apt-get install openssl shellinabox

Configurando o Shellinabox

Por padrão, o shellinaboxd escuta na porta TCP 4200 no host local. Durante a instalação, um novo certificado SSL autoassinado criado automaticamente em "/ var / lib / shellinabox" para usar o protocolo HTTPS.

$ sudo vi /etc/default/shellinabox

# specify the IP address of a destination SSH server
SHELLINABOX_ARGS="--o-beep -s /:SSH:172.16.25.125"

# if you want to restrict access to shellinaboxd from localhost only
SHELLINABOX_ARGS="--o-beep -s /:SSH:172.16.25.125 --localhost-only"

NB: substitua o ip 172.16.25.125 pelo seu

Iniciando o Shellinabox

Depois de concluir a configuração, você pode iniciar o serviço

$ sudo service shellinaboxd start

Verifique Shellinabox

Agora vamos verificar se o Shellinabox está sendo executado na porta 4200 usando o comando "netstat".

$ sudo netstat -nap | grep shellinabox
or
# netstat -nap | grep shellinabox

tcp        0      0 0.0.0.0:4200            0.0.0.0:*               LISTEN      12274/shellinaboxd

Agora abra seu navegador e navegue até 'https: // "Your-IP-Adress: 6175"'. Você poderá ver um terminal SSH baseado na Web. Entre usando seu nome de usuário e senha e você deverá receber seu prompt de shell.

insira a descrição da imagem aqui

fonte

Maythux
fonte
@ maythus, muito obrigado, suas respostas são ótimas. Eu resolvo o meu problema com a solução 1.
ulyssis2
@ ulyssis2 Você é muito bem-vindo amigo
Maythux
@kimerseen Você é bem-vindo amigo
Maythux
@Maythux u pode me ajudar com a minha pergunta askubuntu.com/questions/987626/shell-in-a-box-session-closed
Mihawk
2

O exemplo que você forneceu está correto, mas um pouco enganador. Isso deve funcionar:

ssh -L 8080:<remote-web-host-you-want-to-see>:80 remote-user@remote-ssh-server

Por exemplo, considere uma caixa remota executando ssh que possa acessar esta página da web, que eu quero ver localmente:

http://192.168.1.2/index.html

Para criar um túnel na minha caixa local que permita navegar até a página remota, eu corro localmente:

ssh -L 8080:192.168.1.2:80 user@remote-ssh-server

E, em um navegador da Web, visito:

http: // localhost: 8080 / index.html

Se você precisar (ou desejar) omitir o especificador de porta, será necessário abrir o túnel como raiz, pois 80 é uma porta "privilegiada" (<1024):

sudo ssh -L 80:<remote-web-host-you-want-to-see>:80 remote-user@remote-ssh-server

Então, você pode simplesmente visitar localmente:

http: //localhost/index.html

Nenhuma outra configuração é necessária.

Aliás, isso funciona apenas para um único host que você deseja ver localmente. Se você precisar ver mais, precisará abrir mais túneis em outras portas ou examinar as outras soluções que encapsulam solicitações para todos os hosts remotos por meio de um proxy.

Este é o terceiro uso do -Lcomutador de man ssh:

 -L [bind_address:]port:host:hostport
 -L [bind_address:]port:remote_socket
 -L local_socket:host:hostport
 -L local_socket:remote_socket
         Specifies that connections to the given TCP port or Unix socket on the
         local (client) host are to be forwarded to the given host and port, or
         Unix socket, on the remote side.  This works by allocating a socket to
         listen to either a TCP port on the local side, optionally bound to the
         specified bind_address, or to a Unix socket.  Whenever a connection is
         made to the local port or socket, the connection is forwarded over the
         secure channel, and a connection is made to either host port hostport,
         or the Unix socket remote_socket, from the remote machine.

         Port forwardings can also be specified in the configuration file.  Only
         the superuser can forward privileged ports.  IPv6 addresses can be
         specified by enclosing the address in square brackets.

         By default, the local port is bound in accordance with the GatewayPorts
         setting.  However, an explicit bind_address may be used to bind the
         connection to a specific address.  The bind_address of “localhost”
         indicates that the listening port be bound for local use only, while an
         empty address or ‘*’ indicates that the port should be available from
         all interfaces.
Trevor
fonte