Eu tenho um script bash que copia pequenos arquivos em sucessão usando scp
. Portanto, há vários scp
comandos neste script. Uma chave SSH está sendo usada para autenticação no outro servidor.
Como os arquivos são muito pequenos, as tentativas de conexão SSH acontecem muito rapidamente e, não muito longe do script, scp
serão interrompidas indefinidamente.
- Nenhum erro produzido.
- Os equipamentos de rede foram eliminados da equação e os servidores se comunicando ao vivo na mesma sub-rede.
rsync
O problema também foi demonstrado .
Se um sleep
intervalo de 1 segundo for colocado entre essas chamadas scp, o script será executado sem problemas, sem travamentos.
Onde devo procurar essa aparente limitação de taxa? Não vejo isso entre nenhum dos meus outros servidores ...
Responder1
Às vezes as pessoas configuramlimitação de taxa usando iptables.
O OpenSSH tem a MaxStartups
opção de limitar a taxa de clientes recebidos. O padrão (pelo menos no meu computador) é 10:30:100
.
homem sshd_config
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).
Um outro problema semicomum e causa de atrasos na conexão OpenSSH está relacionado a um recurso no servidor OpenSSH que tentará fazer uma pesquisa reversa do endereço IP de entrada em uma tentativa de conexão. Acredito que ele precise dessa funcionalidade DNS para compatibilidade com alguns dos métodos de autenticação mais antigos compatíveis com rhost, funcionalidade que acho que quase ninguém usa mais. De qualquer forma, o recurso de resolução de DNS causará problemas se os resolvedores de DNS estiverem mal configurados, configurados para usar um resolvedor quebrado ou talvez algo sobre a zona reversa da qual o IP do cliente está se conectando esteja quebrado.
O ideal é que a resposta seja corrigir o DNS e garantir que seu DNS sempre funcione sem erros e responda rapidamente. Mas se você não precisar da resolução DNS, uma solução rápida aqui é impedir que o servidor tente resolver nomes. Defina UseDNS no
em seu sshd_config
.