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.