SSH multi-usuário transparente do usuário

2

O que eu tenho é o mesmo que esta questão SSH túnel através de dois servidores para acessar um serviço da web na porta 9091 (principalmente porque eu fiz essa pergunta).

Mas a diferença agora é que estou acessando a partir de um Chromebook que não pode usar ProxyCommand . Tudo o que tem é o shell NaCl base sendo executado em uma aba Chrome em sandbox.

  • Este é o "aplicativo do shell" que o executa: link

  • Este é o FAQ com informações completas sobre ele. link

Então, uma revisão da minha pergunta anterior:

Eu tenho 3 máquinas:

  • remotePi (PI de framboesa, em algum lugar do mundo)
  • localPi (outro PI de framboesa, na minha rede local, eu tenho acesso total a ele, incluindo root, sem monitor, sem kb, rodando como servidor headless)
  • Chromebook (minha máquina local, que é um Chromebook na mesma rede local que localPi , limitada, mas tem o SSH conforme os links acima).

remotePi tem um túnel SSH constante para localPi , chamando o seguinte comando

ssh -N -R 16864:localhost:22 -p 2222 <user_on_lan>@<external_lan_ip>

Eu posso acessar o remotePi terminal fazendo

Chromebook> ssh <user_on_localPi>@<localPI_ip>
localPi> ssh -l <user_on_remotePi> -p 16846 localhost

E em remotePi , tenho um serviço daemon (interface da web) atendendo em 9091 .

um "desenho" de tudo:

                                   16864:tunnel:22   9091:service
Chromebook <--local_net--> localPi  <--internet-->  remotePi

Então, o que eu preciso é:

Access the daemon service web interface in remotePi by calling on my Chromebook browser 127.0.0.1:9091/web/

No meu computador anterior (mostrado na pergunta vinculada, ubuntu laptop) eu estava fazendo isso usando ProxyCommand na minha configuração e chamando ssh -L9091:localhost:9091 user_on_remotePi@remotePi -N , mas agora estou em um Chromebook que não pode usá-lo e Eu acredito que deve haver uma maneira de fazer isso de qualquer maneira.

Então, eu estava pensando em duas possíveis soluções:

  1. algum comando SSH muito inteligente e comprido que "substituirá" o que o ProxyCommand estava fazendo. Eu sempre vejo isso em tutoriais como esse LINK mas ele sempre depende do nome do host, eu só tenho a porta 16864 para se conectar.

  2. (preferencial) adicione um pouco de mágica à configuração localPi SSH, que fará com que ela ouça em alguma porta não padrão (digamos, 2222 ) e redirecione automaticamente essa conexão para user_on_remotePi:localhost:16864 . Então, quando eu chamar do Chromebook ssh user_on_localPI -p 2222 localPi_ip , o localPi redirecionará isso para o usuário correto diretamente no remotePi.

Como você pode notar, eu sou um novato em rede, meu principal conhecimento em desenvolvimento de aplicativos, então, qualquer ajuda aqui eu serei extremamente grato.

Alguma ideia?

    
por Budius 27.06.2015 / 13:34

1 resposta

1

chegamos lá no chat

LocalPi>ssh -L *:5678:127.0.0.1:9091  [email protected] -p 16864

em seguida, no Chromebook, http://localpi_IP:5678

Assim, o pi remoto tinha feito um SSH-R criando a porta 16864 no localpi.

Ele já conseguiu um terminal para seu pi de framboesa, fazendo localpi>ssh [email protected] -p 16864 Adicionamos um -L para abrir a porta 5678 em seu localpi, para que ele possa se conectar a partir de um dispositivo, por exemplo. Chromebook, para o seu localpi, que vai para o seu remotepi que encaminha para um servidor web em si / seu pi remoto.

Portanto, há dois comandos ssh no total. O do seu pi remoto para o seu localpi. E um de seu localpi para seu remotepi.

Acabamos de alterar o segundo, o do seu localpi para o remotepi dele. Para encapsular a um servidor da web em seu pi remoto.

Na verdade, é um túnel através de um túnel.

    
por 27.06.2015 / 20:12