Como fazer o ssh falhar se o encaminhamento de porta falhar

5

Eu tenho um script bash que executa o ssh para criar um encaminhamento de porta, usando um comando como este:

ssh -N -i keyfile -L 1000:localhost:22 *remote_ip*

Há ocasiões em que a porta de escuta pode estar ocupada, portanto, este comando fornece o erro:

channel_setup_fwd_listener: cannot listen to port: 1000
Could not request local forwarding.

No entanto, a conexão ssh permanece ativa e o comando ssh é bloqueado. Como posso fazer o ssh realmente falhar quando isso ocorre, então meu script pode lidar com isso?

Infelizmente, eu também preciso suportar isso no Solaris (Intel), e o comando ssh não suporta a opção ExitOnForwardFailure - alguma idéia neste caso?

    
por xorsyst 24.02.2014 / 11:16

2 respostas

11

Se você verificar a página man ssh, verá que há uma opção de configuração chamada ExitOnForwardFailure e você pode especificá-la na linha de comando adicionando:

-o "ExitOnForwardFailure yes"

Todas as opções de configuração ssh são descritas nas páginas man ssh_config e sshd_config. Se você achar que a opção não é suportada, talvez seja necessário atualizar para uma versão mais recente do ssh.

Boa sorte.

    
por 24.02.2014 / 11:24
3

Você também pode adicionar ExitOnForwardFailure yes no seu arquivo '~/.ssh/config' .

Crie um, se você não tiver um.

Certifique-se de que o usuário correto seja o proprietário do arquivo.

Reinicie seu serviço ssh sudo service ssh restart no unbuntu.

    
por 23.04.2015 / 18:31