Eu tinha o login baseado em chave ssh funcionando bem. Em seguida, alterei o nome do host no meu computador e o login com chave parou de funcionar. Parecia fazer sentido. as chaves provavelmente se baseavam no meu antigo nome de host. Então, eu apaguei todas as minhas chaves e todos os arquivos em ~ / .ssh / e os regenerei (e alterei as chaves_estabelecidas nos servidores aos quais me conecto)
Agora, sempre que tento fazer o ssh, ele fica travado sem o prompt da senha, não importa para onde estou tentando fazer o ssh - mesmo servidores em que não tenho o login baseado em chave configurado. Não há nada no .ssh / config.
Além disso, quando eu 'su -' para fazer root, o ssh funciona perfeitamente. sem problemas. Isso acontece apenas 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 de março de 2009 debug1: Lendo dados de configuração /Users/myname/.ssh/config debug1: Lendo dados de configuração / usr / etc / ssh_config ...... debug1: o host 'myremoteserver.com' é conhecido e corresponde à chave do host RSA. debug1: chave encontrada em /Users/myname/.ssh/known_hosts:1 debug2: conjunto de bits: 512/1024 debug1: ssh_rsa_verify: assinatura correta debug2: kex_derive_keys debug2: set_newkeys: mode 1 debug1: SSH2_MSG_NEWKEYS enviado debug1: esperando SSH2_MSG_NEWKEYS debug2: set_newkeys: mode 0 debug1: SSH2_MSG_NEWKEYS recebido debug1: SSH2_MSG_SERVICE_REQUEST enviado debug2: service_accept: ssh-userauth debug1: SSH2_MSG_SERVICE_ACCEPT recebido
E então ele simplesmente fica aqui ...
Aqui está a saída do dtruss (como strace, mas para OSX) perto do final, onde fica: sudo dtruss ssh -vv [email protected]
select (0x4, 0x508200, 0x0, 0x0, 0x0) = 1 0 read (0x3, "$ \ 222 \ 351 {L \ 363 \ 261 \ 25063sN \ 216 \ 300 @ q7 \ 203 \ 276b \ 257 \ 354 \ 337 \ 356 \ 260! {\ 342 \ 017 \ 271 = \ 222, \ 245 \ 347t \ 006 \ 225 \ 257 \ 333; \ 204 \ 020] \ 242 \ 005z # \ 0 ", 0x2000) = 48 0 write (0x2, "debug2: service_accept: ssh-userauth \ r \ n \ 0", 0x26) = 38 0 conectar (0x4, 0xBFFFEEA2, 0x6A) = 0 0 gravação (0x4, "\ 0", 0x4) = 4 0 write (0x4, "\ v5 \ 004 \ 0", 0x1) = 1 0 read (0x4, "\ 0", 0x4) = -1 Erro nº 4
Parece estar tentando ler algo e depende disso. Se alguém tiver algumas sugestões ou idéias, ficaria muito grato!
Respostas:
O motivo pelo qual seu cliente ssh trava na sua conta, mas não em outras contas (raiz), é provavelmente porque há algo errado com o seu ssh-agent. Ou o
ssh-agent
não está sendo executado ou sua configuração está incorreta de alguma forma.Para ter uma confirmação disso, tente o seguinte:
Se você for solicitado a inserir a senha na sua ssh_key, isso significa que você tem um problema com o seu ssh-agent.
Veja também meu post sobre esta questão relacionada .
fonte
Posso lhe interessar no DNS reverso?
Essencialmente, o cliente está fazendo o DNS reverso no servidor ou vice-versa.
Eu proponho um teste:
Desative as pesquisas de DNS no servidor editando / etc / ssh / sshd_config e verifique se "UseDNS" está definido como "não".
Execute "service ssh reload" (ou o que faz com que o seu daemon ssh releia a configuração) e tente novamente.
Incidencialmente, não aconteceu para finalmente solicitá-lo após um longo período de tempo, não é?
Outra coisa que você pode verificar é olhar o conteúdo de / etc / hosts no servidor para garantir que não haja nada errado.
fonte
Verifique as permissões no diretório ~ / .ssh e os arquivos nele. Seu umask padrão pode ser muito permissivo e, quando você recriou os arquivos, pode ter dado inadvertidamente permissões erradas. Fui queimado por isso algumas vezes. Nenhum dos clientes ssh (ou servidores) que eu usei já deu uma mensagem de erro útil sobre isso também ...
fonte
você tem espaço livre em disco no seu cliente (e no seu servidor)?
df -h
fonte
Eu tive um problema parecido.
Parece que eu poderia ignorar o problema forçando um nome de login assim.
fonte
Para mim, a atualização para o Snow Leopard resolveu o problema. Então, acho que estava relacionado a um bug no OSX.
fonte
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 ela deverá ser solicitada novamente.
Por outro lado, deve emitir um aviso quando o host não corresponder ao que está registrado.
Eu tive problemas em que, no OS X, a pesquisa de nome de host atua como falha; a conexão atinge o tempo limite de espera por tanto tempo ou, quando o prompt é exibido, está aguardando há tanto tempo que leva cerca de dez segundos para você digitar uma senha antes de interromper a conexão. Eu nunca consegui rastreá-lo, apesar de as pessoas sugerirem adicionar o host em questão ao arquivo do host. Eu acho que foi apenas uma "falha nas pesquisas de DNS do OS X" e era esperado que fosse tolerado ... se alguém tivesse esse problema e o resolvesse, eu adoraria saber sobre isso.
fonte
Verifique os logs no servidor. Geralmente está em
/var/log/auth.log
(Debian / Ubuntu) ou/var/log/secure
(RedHat / CentOS). Quaisquer problemas com a conexão geralmente são registrados lá.fonte
Verifique se o / etc / hostname está com nova linha finalizada.
fonte