O SSH pára de funcionar se o comando for executado a partir do local (login do OS X) O

3

Os comandos ssh só executam os do sistema local.

por exemplo:

ssh [email protected] df -h

Isso funcionou, e depois disso, o protocolo ssh foi enforcado. Ele fica pendurado por cerca de 10 minutos e, em seguida, novamente fica normal novamente. A mensagem de erro que recebo é essa.

ssh: connect to host mydomain.com port 22: Operation timed out

    
por NarayaN 18.04.2017 / 12:57

1 resposta

2

O problema é que o ssh-agent em execução na sua máquina local está travando e impedindo que você tente fazer outra conexão. Eu acredito que ssh-agent deve sair quando sua conexão ssh for finalizada e o processo terminar, mas por algum motivo a implementação do OS X trava. Esta instância do ssh-agent não está disponível para outras instâncias do seu usuário, por motivos de segurança.

A solução, que eu acredito que se aplicaria se isso estivesse acontecendo no Ubuntu, é simplesmente matar o processo ssh-agent quando você terminar sua sessão ssh, antes de iniciar outra.

Se ssh-agent pendurar for um problema, você poderá finalizá-lo automaticamente após sua sessão com:

~$ ssh username@hostname && kill $(pgrep ssh-agent)

[EDITAR]

Esse comando é se o cliente do qual você está se conectando tiver apenas um usuário usando o ssh, se você estiver fazendo conexões de uma máquina com várias conexões ssh simultâneas de diferentes usuários. Você vai querer usar:

~$ ssh username@hostname && kill $(ps -U your_local_username | grep ssh-agent | grep -oP "^\d+")
    
por blanket_cat 18.04.2017 / 14:30