Fazer o ssh -R funcionar para encaminhar para dois PCs clientes no mesmo IP, mas portas diferentes?

1

Eu fiz basicamente dois ssh-R idênticos para frente, mas apenas um funciona. Aqui está a minha situação:

No trabalho: servidor / computador que eu quero fazer login remotamente

Em casa: Área de Trabalho Laptop

Roteador encaminha: Port 22 e 49666 para Laptop Port 49667 e 49668 para o Desktop

o departamento de TI no trabalho quer que eu use ssh -R no computador lá, em vez deles abrindo uma porta normalmente por algum motivo (eu acho que eles estão preocupados com a segurança se deixarem uma porta aberta). Foi uma grande concessão para eles me permitirem fazer isso e eu não quero ter que discutir com eles mais sobre abrir um porto normalmente. Então eu faço isso no trabalho

ssh -R 49666:localhost:22 (home IP) -N   #this is for the laptop

Então, no meu laptop, posso fazer:

ssh localhost -p 49666

e eu entro no computador de trabalho com sucesso.

No trabalho, também faço:

ssh -R 49668:localhost:49667 (home IP) -N   #this is for the desktop

No entanto, na minha área de trabalho, se eu tentar

ssh localhost -p 49667

Eu recebo:

ssh: connect to host localhost port 49668: Connection refused

Os comandos são basicamente análogos, então não sei por que um funciona e o outro não. Meu primeiro pensamento foi que desde que a porta ssh padrão é 22, então meu desktop não está ouvindo 49667. Então eu fui em / etc / ssh / sshd_config e mudei para ouvir 49667, mas eu ainda recebo o mesmo erro.

Se eu estou no computador de trabalho e digito:

ssh (home IP) -p 22

Eu fiz o login com sucesso no laptop. Da mesma forma, se eu digitar

ssh (home IP) -p 49667

Eu fiz o login com sucesso na área de trabalho. Então, não acho que seja um problema de segurança na minha área de trabalho, já que posso acessá-lo do servidor de trabalho.

Meu segundo pensamento foi que, no comando ssh -R, a parte (IP residencial) está tentando ir para a porta 22 no IP residencial, porque o computador de trabalho tem o ssh na porta padrão 22 e não sabe que Eu configurei o computador de destino para ver a porta 49667. Então, minha próxima tentativa foi esta

Eu entrei em ~ / .ssh / config no computador de trabalho e coloquei uma linha como esta:

host Desktop 
hostname (home ip)
port 49667

Agora, se eu for ao computador do trabalho e digitar

ssh Desktop

ele efetua o logon com êxito na área de trabalho, pois é basicamente o mesmo que o comando acima:

ssh (home IP) -p 49667

Então, eu tento fazer essa linha ssh -R no computador de trabalho:

ssh -R 49668:localhost:49667 Desktop -N

Agora, quando eu tento enviar ssh para o servidor da área de trabalho em casa, recebo este erro:

ssh_exchange_identification: Connection closed by remote host

Qual é diferente do que aconteceu antes (a conexão recusou, o que significa que não houve nenhum redirecionamento de porta). Além disso, quando obtenho a falha acima, esta falha aparece no servidor de trabalho (eu sei porque eu estou assistindo do meu laptop)

connect_to localhost port 49667: failed.

Então estou recebendo uma reação diferente neste caso, mas ainda não tenho sucesso. E eu estou sem ideias ...

Todos os 3 computadores (trabalho, laptop, desktop) possuem chaves públicas corretas para cada computador.

    
por iammax 28.11.2017 / 03:18

1 resposta

1

Eu acho que tenho a sorte de descobrir a minha resposta 15 minutos depois de postar a pergunta, então eu vou postar a minha solução no caso de alguém ter um problema semelhante ... O seguinte comando funcionou para mim

ssh -R 49668:localhost:22 Desktop -N

Por alguma razão eu pensei que o segundo número de porta (22 neste caso) deveria ser a porta onde o computador de destino (o IP que está no arquivo de configuração em "Desktop") escuta o ssh. Mas isso funcionou, então eu estava errado. Talvez seja suposto ser a porta onde o ssh é escutado no computador onde o comando ssh -R é executado?

    
por iammax 28.11.2017 / 03:30