autossh sobre muitas portas LocalForward

0

Eu tenho que conectar a um servidor base, chamá-lo server1, e a partir daí, eu posso acessar muitos outros servidores (host1, host2, ... host99.) Eu tenho o autossh trabalhando para server1 sem problemas - restaura minha conexão ao servidor1 sempre que minha conexão de rede é perdida. No entanto, permanecer conectado ao server1 não é meu único objetivo. Eu quero ficar conectado ao host1, 2, etc. quando eu estiver usando essas máquinas.

Eu só uso isso para chegar ao server1:

autossh server1

Neste momento, quando tento autossh para o host1, recebo:

local autossh[867] <Error>: bind on 127.0.0.1:12346: Address already in use

Agora, a configuração para minha porta de monitoramento é apenas 12345 (em ~ / .bash_profile):

export AUTOSSH_PORT=12345

... então parece que a porta do host local 1234 6 é tentada em seguida, mas falha.

Meu ~ .ssh / config tem essa configuração de encaminhamento:

Host server1
  User jacob
  HostName server1.mydomain.com
  Port 722
  ForwardAgent yes
  LocalForward 1124 1:22
  RemoteForward 52698 127.0.0.1:52698 #for sublime text / rmate
  IdentityFile ~/.ssh/id_rsa

Host host1
 User jacob
 HostName localhost
 RemoteForward 52698 127.0.0.1:52698
 Port 1124
 ForwardAgent yes
 IdentityFile ~/.ssh/id_rsa

.... Eu li tudo o que pude encontrar sobre o erro "Endereço já em uso" e tentei modificar meu arquivo de configuração, adicionando hosts ao arquivo etc / hosts, ainda o mesmo resultado. Alguma idéia?

    
por JacobIRR 23.04.2016 / 05:02

1 resposta

3

De acordo com man autossh (a página de manual), com a porta de monitoramento especificada em um único número, autossh usa essa porta e a porta + 1 para sua função de monitoramento, onde a última é chamada de "porta de eco" (para receber a resposta de monitoramento). Isso significa que ele escutará na porta + 1 e, portanto, reivindicará essa porta. Um programa autossh subsequente deve receber portas diferentes.

Como alternativa, você pode usar a porta 0, que desativa o teste de conectividade, e reinicia apenas ssh caso saia. Citando a página de manual:

Setting the monitor port to 0 turns the monitoring function off, and autossh will only restart ssh upon ssh's exit. For example, if you are using a recent version of OpenSSH, you may wish to explore using the ServerAliveInterval and ServerAliveCountMax options to have the SSH client exit if it finds itself no longer connected to the server. In many ways this may be a better solution than the monitoring port.

    
por 24.04.2016 / 12:29

Tags