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?
/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_keys
e o que está sendo enviado pelo cliente SSH.Respostas:
Muitas vezes, encontro um bug semelhante nas máquinas do CentOS 6 que envolvem o
ssh-copy-id
SELinux.Quando
ssh-copy-id
cria 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
fonte
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 2222
e conectar-se assh -p 2222 user@remotehost
.fonte
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 -v
Depuração ajudou. A chave é aceita:E então eu recebo o erro
Minha correção foi desativar o selinux
setenforce 0
e desativar o / etc / selinux. Então o login ssh sem senha funcionou para mim.fonte
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
fonte
No meu caso, o problema estava no formato incorreto do
authorized_keys
arquivo.Não deve haver nenhuma nova linha entre a definição do formato (
ssh-rss
,ssh-dss
..) e da própria chave pública.fonte
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
env
nas duas sessões. Descobri que esta é a sessão de trabalho, que estava ausente na sessão de não trabalho:Colei essa tarefa na sessão não útil:
Em outras palavras, essa solução funcionou para mim.
Eu fiz uma pequena verificação no SSH_AUTH_SOCKET. A partir desta resposta:
Eu acho que isso é essencial para a resolução de chaves com base no resultado.
fonte
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
scp
chave pública para o servidor.fonte
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.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.
fonte