ssh trava sem prompt de senha - funciona no root ou em outras contas

13

Eu tinha o login baseado em chave ssh funcionando bem. Em seguida, alterei o nome do host no meu computador e o login baseado em chave parou de funcionar. Parecia fazer sentido. as chaves provavelmente dependiam do meu nome de host antigo. Então, eu deletei todas as minhas chaves e todos os arquivos em ~ / .ssh / e os criei novamente (e mudei o authorized_keys nos servidores que eu conecto)

Agora, toda vez que eu tentar o ssh, ele apenas trava sem o prompt de senha, não importa onde eu esteja tentando ssh - até mesmo servidores onde eu não tenho o login baseado em chave configurado. Não há nada em .ssh / config.

Além disso, quando eu 'su -' to root, o ssh funciona perfeitamente. sem problemas. Isso só acontece na minha conta de usuário.

Abaixo estão algumas informações de depuração do ssh

ssh -vv [email protected]
OpenSSH_5.2p1, OpenSSL 0.9.8k 25 Mar 2009
debug1: Reading configuration data /Users/myname/.ssh/config
debug1: Reading configuration data /usr/etc/ssh_config
......
debug1: Host 'myremoteserver.com' is known and matches the RSA host key.
debug1: Found key in /Users/myname/.ssh/known_hosts:1
debug2: bits set: 512/1024
debug1: ssh_rsa_verify: signature correct
debug2: kex_derive_keys
debug2: set_newkeys: mode 1
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug2: set_newkeys: mode 0
debug1: SSH2_MSG_NEWKEYS received
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug2: service_accept: ssh-userauth
debug1: SSH2_MSG_SERVICE_ACCEPT received

E então fica aqui ...

Aqui está a saída dtruss (como strace, mas para OSX) perto do final em que ela trava: sudo dtruss ssh -vv [email protected]

select(0x4, 0x508200, 0x0, 0x0, 0x0)         = 1 0
read(0x3, "$21{L31063sN60@q736b74760!{271=2,57t
ssh -vv [email protected]
OpenSSH_5.2p1, OpenSSL 0.9.8k 25 Mar 2009
debug1: Reading configuration data /Users/myname/.ssh/config
debug1: Reading configuration data /usr/etc/ssh_config
......
debug1: Host 'myremoteserver.com' is known and matches the RSA host key.
debug1: Found key in /Users/myname/.ssh/known_hosts:1
debug2: bits set: 512/1024
debug1: ssh_rsa_verify: signature correct
debug2: kex_derive_keys
debug2: set_newkeys: mode 1
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug2: set_newkeys: mode 0
debug1: SSH2_MSG_NEWKEYS received
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug2: service_accept: ssh-userauth
debug1: SSH2_MSG_SERVICE_ACCEPT received
6573;40]2
select(0x4, 0x508200, 0x0, 0x0, 0x0)         = 1 0
read(0x3, "$21{L31063sN60@q736b74760!{271=2,57t%pre%6573;40]2%pre%5z#%pre%", 0x2000)  = 48 0
write(0x2, "debug2: service_accept: ssh-userauth\r\n%pre%", 0x26)       = 38 0
connect(0x4, 0xBFFFEEA2, 0x6A)       = 0 0
write(0x4, "%pre%", 0x4)        = 4 0
write(0x4, "\v5%pre%4%pre%", 0x1)         = 1 0
read(0x4, "%pre%", 0x4)         = -1 Err#4
5z#%pre%", 0x2000) = 48 0 write(0x2, "debug2: service_accept: ssh-userauth\r\n%pre%", 0x26) = 38 0 connect(0x4, 0xBFFFEEA2, 0x6A) = 0 0 write(0x4, "%pre%", 0x4) = 4 0 write(0x4, "\v5%pre%4%pre%", 0x1) = 1 0 read(0x4, "%pre%", 0x4) = -1 Err#4

Parece que está tentando ler alguma coisa e simplesmente paira sobre isso. Se alguém tiver algumas sugestões ou ideias, ficaria muito grato!

    
por saveraver 23.08.2009 / 03:42

9 respostas

1

Para mim, a atualização para o Snow Leopard resolveu o problema. Então, acho que isso estava relacionado a um bug no OSX.

    
por 12.10.2009 / 03:21
8

A razão pela qual seu cliente ssh trava sua conta, mas não por outras contas (raiz), provavelmente é porque há algo errado com seu agente ssh. Ou que o ssh-agent não esteja em execução ou que sua configuração esteja errada de alguma forma.

Para ter uma confirmação disso, você pode tentar o seguinte:

unset SSH_AUTH_SOCK
ssh [email protected]

Se você for solicitado a inserir a frase secreta em ssh_key, isso significa que você tem um problema com o agente ssh.

Veja também minha postagem em esta questão relacionada .

    
por 08.03.2013 / 17:28
7

Posso lhe interessar em DNS reverso?

Essencialmente, o cliente está fazendo o DNS reverso no servidor, ou vice-versa.

Eu proponho um teste:

Desabilite as pesquisas de DNS no servidor editando / etc / ssh / sshd_config e certificando-se de que "UseDNS" esteja configurado para "não".

Execute "service ssh reload" (ou qualquer coisa que faça com que seu daemon ssh releia a configuração) e tente novamente.

Incidentemente, não acontece para finalmente pedir-lhe depois de um longo período de tempo, não é?

Outra coisa que você pode verificar é o conteúdo do / etc / hosts no servidor para garantir que nada esteja errado.

    
por 07.09.2009 / 04:06
1

Verifique as permissões no diretório ~ / .ssh e nos arquivos. Seu umask padrão pode ser permissivo demais & quando você recriou os arquivos, talvez tenha inadvertidamente dado a eles as permissões incorretas. Eu tenho sido queimado por isso algumas vezes eu mesmo. Nenhum dos clientes ssh (ou servidores) que usei já deu uma mensagem de erro útil sobre isso ...

    
por 23.08.2009 / 06:58
1

você tem espaço livre em disco no seu cliente (e no seu servidor)?

df -h

    
por 23.08.2009 / 15:30
1

Eu tive um problema semelhante.

ssh domain.ip:user.name

Parece que eu poderia ignorar o problema, forçando um nome de login assim.

ssh -v domain.ip -l user.name
    
por 24.02.2013 / 04:07
0

Se for por causa de uma chave salva, você poderá excluí-la do diretório ~ / .ssh no arquivo known_hosts. Basta encontrar a entrada e excluí-la e, em seguida, deverá avisá-lo novamente.

Por outro lado, deve dar um aviso quando o host não corresponder ao que foi gravado.

Eu tive problemas onde no OS X a pesquisa do nome do host atua como falha; a conexão acaba com a espera de tanto tempo, ou quando o aviso aparece, ele está esperando há tanto tempo que dá dez segundos para que você digite uma senha antes de soltar a conexão. Eu nunca consegui rastreá-lo apesar das pessoas sugerirem adicionar o host em questão ao arquivo host. Eu acho que foi apenas uma "falha com as pesquisas de DNS do OS X" e esperava-se que fosse tolerado ... se alguém tivesse esse problema e resolvido, eu adoraria saber sobre isso.

    
por 23.08.2009 / 03:59
0

Verifique os logs no servidor. Geralmente é em /var/log/auth.log (Debian / Ubuntu) ou /var/log/secure (RedHat / CentOS). Qualquer problema com a conexão geralmente é registrado lá.

    
por 23.08.2009 / 15:51
0

Certifique-se de que / etc / hostname seja terminado por nova linha.

    
por 13.07.2015 / 17:30

Tags