O SSH é lento para fazer uma conexão [duplicado]

25

Acabei de instalar o Ubuntu 11.10 e, sempre que tento fazer o SSH nos meus servidores, é muito lento. Antes de exibir o prompt de senha, pode levar entre 40 segundos e 60 segundos.

Eu uso:

ssh [email protected]

Uma vez logado, tudo fica bem e funciona rápido.

Por que demora tanto tempo e como posso corrigi-lo? Existem opções no comando SSH que posso usar?

joel
fonte

Respostas:

44

Isso é lento porque o daemon OpenSSH usa DNS para executar uma pesquisa inversa no nome do host do cliente para garantir que seja válido

sudo vi /etc/ssh/ssh_config

Comente as seguintes linhas

#GSSAPIAuthentication yes
#GSSAPIDelegateCredentials no

OU

Adicione isso:

UseDNS no
Livro de Zeus
fonte
6
Há um arquivo sshd_config para o lado do servidor e ssh_config para o lado do cliente. Definir essas opções no cliente e no servidor no arquivo ssh_config não me ajudou. Somente depois de definir GSSAPIAuthentication noe GSSAPIDelegateCredentials yesadicionar UseDNS noo arquivo sshd_config do servidor, ele acelerou a conexão para mim.
Metakermit 5/05
1
Não há implicações de segurança para fazer isso?
TheStoryCoder
@TheStoryCoder boa pergunta, mal tem que verificar novamente, você desencadeou minha curiosidade agora ...
Book Of Zeus
1
Depois de adicionado UseDNS no, recebi Bad configuration option: usednsquando tentei efetuar login no ssh em outro servidor.
Casper
1
Tente configuração UseDNSpara noem /etc/sshd_configou /etc/ssh/sshd_config. NÃO /etc/ssh_config!
Yu Jiaao
13

Este é apenas um complemento da resposta do Livro de Zeus. Caso você não tenha acesso root (sudo), ainda poderá configurá-lo.

Você precisa editar o arquivo "user ssh_config", que é:

vi $HOME/.ssh/config

(Nota: você precisaria criar o diretório $ HOME / .ssh se ele não existir)

E adicione:

Host *
  GSSAPIAuthentication no
  GSSAPIDelegateCredentials yes

Você pode fazer isso por host, se necessário :) exemplo:

Host linux-srv
  HostName 192.158.1.1
  GSSAPIAuthentication no
  GSSAPIDelegateCredentials yes

Verifique se o endereço IP corresponde ao IP do servidor. Uma vantagem interessante é que agora o ssh fornecerá o preenchimento automático para este servidor. Então você pode digitar ssh lin+ Tabe ele deve ser preenchido automaticamente ssh linux-srv.

Você pode adicionar várias opções úteis para não precisar digitá-las sempre:

User <a user>
Port <a port number>
IdentityFile <a specific private key>
Compression yes
....

Então, ao invés de digitar ssh -C -p 1022 -i ~/.hidden/prv-key-4096bit [email protected]um simples ssh linux-srv, basta!

Huygens
fonte