Tentando fazer o SSH no computador remoto, mas ainda pedindo senha

18

Tentando fazer o SSH no computador remoto, mas ainda pedindo a senha.

Eu tenho vários computadores executando o SElinux e apenas um deles está dificultando o uso do ssh sem a senha.

Eu fiz um ssh-copy-id e posso ver minha chave no .ssh / allowed_keys.

Eu chmod 700 .ssh e chmod 600 todos os arquivos em ./ssh/*

Se eu fizer um ssh -v esta é a minha saída:

OpenSSH_5.3p1, OpenSSL 1.0.0-fips 29 Mar 2010
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug1: Connecting to wcmisdlin05 [10.52.208.224] port 22.
debug1: Connection established.
debug1: identity file /home/jsmith/.ssh/identity type -1
debug1: identity file /home/jsmith/.ssh/id_rsa type 1
debug1: identity file /home/jsmith/.ssh/id_dsa type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.3
debug1: match: OpenSSH_5.3 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.3
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Host 'wcmisdlin05' is known and matches the RSA host key.
debug1: Found key in /home/jsmith/.ssh/known_hosts:9
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Next authentication method: gssapi-keyex
debug1: No valid Key exchange context
debug1: Next authentication method: gssapi-with-mic
debug1: Unspecified GSS failure.  Minor code may provide more information
Credentials cache file '/tmp/krb5cc_501' not found

debug1: Unspecified GSS failure.  Minor code may provide more information
Credentials cache file '/tmp/krb5cc_501' not found

debug1: Unspecified GSS failure.  Minor code may provide more information


debug1: Unspecified GSS failure.  Minor code may provide more information


debug1: Next authentication method: publickey
debug1: Offering public key: /home/jsmith/.ssh/id_rsa
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Trying private key: /home/jsmith/.ssh/identity
debug1: Trying private key: /home/jsmith/.ssh/id_dsa
debug1: Next authentication method: password

Alguém pode me dizer por que não está funcionando neste computador remoto?

JMS1969SF
fonte
5
Procure /var/log/secure(se houver permissões) e /var/log/messages(se for SELinux.) Caso contrário, é uma incompatibilidade entre o que está dentro ~/.ssh/authorized_keyse o que está sendo enviado pelo cliente SSH.
Aaron Copley

Respostas:

17

Muitas vezes, encontro um bug semelhante nas máquinas do CentOS 6 que envolvem o ssh-copy-idSELinux.

Quando ssh-copy-idcria os arquivos de chaves autorizadas, ele é criado com as permissões apropriadas, mas com o rótulo errado do SELinux. A correção para isso é restaurar os rótulos para seus padrões de política usando este comando:

restorecon -R ~/.ssh

Kenny Rasschaert
fonte
11
Boa resposta. Mas para um iniciante no SELinux, também seria interessante saber como inspecionar a lista e as permissões.
Zrajm 27/03
14

Essas coisas sempre são muito mais fáceis de depurar do lado do servidor, se isso for possível. Se você pode iniciar um sshd em outra porta no modo de depuração, ele informará imediatamente por que a chave está sendo rejeitada (meu palpite é que seu diretório pessoal é gravável em grupo). Você pode, por exemplo, iniciar um sshd no modo de depuração na porta 2222 com /usr/sbin/sshd -d -p 2222e conectar-se a ssh -p 2222 user@remotehost.

ensopado
fonte
4
Muito obrigado pelo seu palpite (o diretório inicial é gravável em grupo). Esse foi exatamente o meu caso.
Sergei Kurenkov 03/04
@skwllsp - aceite esta resposta se for a correta para o seu caso.
Deer Hunter
11
@ Hunter Hunter, a pergunta foi feita por outra pessoa, não eu. Não posso aceitar esta resposta.
Sergei Kurenkov
@skwllsp - um momento importante para mim, desculpe.
Deer Hunter
O chmod 744 no meu diretório pessoal o resolveu - estava relacionado a esta resposta, obrigado!
Brandt Solovij
3

O pôster que se referiu ao SElinux acertou em cheio no meu problema, não quero usar o selinux, mas esqueci de desativá-lo, e o servidor criou o selinux ativado na inicialização.

ssh -vDepuração ajudou. A chave é aceita:

debug1: Found key in /var/lib/amanda/.ssh/known_hosts:19
debug1: ssh_rsa_verify: signature correct

E então eu recebo o erro

debug1: Next authentication method: gssapi-with-mic
debug1: Unspecified GSS failure.  Minor code may provide more information
Credentials cache file '/tmp/krb5cc_502' not found

debug1: Unspecified GSS failure.  Minor code may provide more information
Credentials cache file '/tmp/krb5cc_502' not found

debug1: Unspecified GSS failure.  Minor code may provide more information


debug1: Unspecified GSS failure.  Minor code may provide more information
Credentials cache file '/tmp/krb5cc_502' not found

Minha correção foi desativar o selinux setenforce 0e desativar o / etc / selinux. Então o login ssh sem senha funcionou para mim.

Matt
fonte
1

Eu experimentei isso há algum tempo no RHEL5 (não sei se essa é a distro que você está usando) e descobri que foi somente quando usei o ssh-copy-id. Tente digitar o arquivo de chave na pasta correta e, é claro, redefinir as permissões

GeoSword
fonte
0

No meu caso, o problema estava no formato incorreto do authorized_keysarquivo.

Não deve haver nenhuma nova linha entre a definição do formato ( ssh-rss, ssh-dss..) e da própria chave pública.

helvete
fonte
0

Eu tive problemas anteriormente com ssh e keyfiles. Nessa ocasião, renomear minha chave de identificação como " id_rsa" ajudou. Infelizmente, tenho chaves diferentes para servidores diferentes. Portanto, essa abordagem tem uma utilidade limitada. Isso pode ajudar como pontual.

Em segundo lugar, hoje eu novamente tenho esse erro em apenas uma sessão do XTerm e tudo funciona muito bem em outras 6 sessões do xterm na mesma máquina de servidor / mangueira. Então, comparei minha saída envnas duas sessões. Descobri que esta é a sessão de trabalho, que estava ausente na sessão de não trabalho:

SSH_AUTH_SOCK=/run/user/1001/keyring/ssh 

Colei essa tarefa na sessão não útil:

export SSH_AUTH_SOCK=/run/user/1000/keyring/ssh
ssh  user@host
... Welcome ...

Em outras palavras, essa solução funcionou para mim.

Eu fiz uma pequena verificação no SSH_AUTH_SOCKET. A partir desta resposta:

o caminho do soquete do arquivo unix que o agente usa para comunicação com outros processos

Eu acho que isso é essencial para a resolução de chaves com base no resultado.

vai
fonte
-1

debug1: Oferecendo chave pública: /home/jsmith/.ssh/id_ rsa

...

debug1: Tentando chave privada: /home/jsmith/.ssh/id_ dsa

Parece-me que a chave pública / privada simplesmente não corresponde. Os nomes de chave informam que chave pública é chave RSA e chave privada é DSA.

Tente gerar um novo par e scpchave pública para o servidor.

Gevial
fonte
é possível verificar se esse é realmente o caso comparando as impressões digitais das duas chaves com ssh-keygen -l -f ~/.ssh/id_rsa' and ssh-keygen -l -f ~ / .ssh / id_rsa.pub`. No entanto, não acredito que ele ofereceria as chaves se houvesse uma incompatibilidade. Eu acho que é apenas um que está sendo rejeitado pelo servidor por um motivo ainda não determinado, por isso tenta outro.
ensopado de
-2

Recomendo que verifique as autoridades no diretório ./ssh e no diretório inicial do usuário, no arquivo de chaves e no arquivo allowed_keys, pois ninguém mais deve ter permissão para escrever e ler o proprietário se desejar que a conexão ssh sem senha funcione. Isso diz respeito às máquinas de origem e de destino. Para ser honesto, às vezes funciona mesmo se houver direitos maiores, mas não deveria.

Alan
fonte
11
Verifique: serverfault.com/questions/464411/… . Sua postagem também é redundante, pois você não leu o que os outros escreveram.
Deer Hunter