Estou ativando várias instâncias remotas por meio do Google Cloud e scp
enviando scripts para essas instâncias para executá-las e obter os resultados scp
de volta ao meu computador local. As coisas começam bem, mas depois de um tempo (cerca de 30 instâncias depois), novas instâncias não conseguem recuperar scp
os arquivos para o meu computador quando recebo o erro: ssh_exchange_identification: Connection closed by remote host
. Este erro só desaparece depois que eu redefini o ssh do meu computador local com os seguintes comandos:
sudo launchctl unload /System/Library/LaunchDaemons/ssh.plist
sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist
Qual é o problema subjacente e como posso resolvê-lo para resolver esse problema sem ter que redefinir constantemente meu ssh?
Responder1
Você pode estar encontrando o sshdMaxStartupslimite:
MaxStartups
Especifica o número máximo de conexões simultâneas não autenticadas com o daemon SSH. Conexões adicionais serão descartadas até que a autenticação seja bem-sucedida ou o LoginGraceTime expire para uma conexão. O padrão é 10:30:100.
Alternativamente, a eliminação antecipada aleatória pode ser habilitada especificando os três valores separados por dois pontos start:rate:full (por exemplo, "10:30:60"). sshd(8) recusará tentativas de conexão com uma probabilidade de taxa/100 (30%) se houver conexões não autenticadas atualmente iniciadas (10). A probabilidade aumenta linearmente e todas as tentativas de conexão são recusadas se o número de conexões não autenticadas atingir o total (60).
Você pode tentar alterar a configuração. No MacOS, o arquivo de configuração é /private/etc/ssh/sshd_config
.
Como alternativa, você pode escalonar as conexões ssh no servidor, para que não cheguem todas ao mesmo tempo.