Estou tentando configurar um login SSH sem senha no CentOS 5.4:
- Gerei chave pública RSA no cliente.
- ssh-copy-id do cliente para o servidor.
- ~ / .Ssh / allowed_keys verificado contém a chave do cliente.
O cliente ainda solicitou a senha. Do que eu senti falta?
Obrigado.
EDIT: verificado ssh_config e permissões conforme recomendado. Estas são as informações de depuração do cliente:
debug2: key: /home/saguna/.ssh/identity ((nil))
debug2: key: /home/saguna/.ssh/id_rsa (0x2b31921be9a0)
debug2: key: /home/saguna/.ssh/id_dsa ((nil))
debug1: Authentications that can continue: publickey,gssapi-with-mic,password
debug3: start over, passed a different list publickey,gssapi-with-mic,password
debug3: preferred gssapi-with-mic,publickey,keyboard-interactive,password
debug3: authmethod_lookup gssapi-with-mic
debug3: remaining preferred: publickey,keyboard-interactive,password
debug3: authmethod_is_enabled gssapi-with-mic
debug1: Next authentication method: gssapi-with-mic
debug3: Trying to reverse map address 192.168.1.75.
debug1: Unspecified GSS failure. Minor code may provide more information
Unknown code krb5 195
debug1: Unspecified GSS failure. Minor code may provide more information
Unknown code krb5 195
debug1: Unspecified GSS failure. Minor code may provide more information
Unknown code krb5 195
debug2: we did not send a packet, disable method
debug3: authmethod_lookup publickey
debug3: remaining preferred: keyboard-interactive,password
debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Trying private key: /home/saguna/.ssh/identity
debug3: no such identity: /home/saguna/.ssh/identity
debug1: Offering public key: /home/saguna/.ssh/id_rsa
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug1: Authentications that can continue: publickey,gssapi-with-mic,password
debug1: Trying private key: /home/saguna/.ssh/id_dsa
debug3: no such identity: /home/saguna/.ssh/id_dsa
debug2: we did not send a packet, disable method
debug3: authmethod_lookup password
debug3: remaining preferred: ,password
debug3: authmethod_is_enabled password
debug1: Next authentication method: password
[email protected]'s password:
Respostas:
9/10 vezes é porque ~ / .ssh / allowed_keys não está no modo certo.
fonte
~/.ssh
diretórios não podem ser gravados por ninguém que não seja o usuário.Faça check-in em / etc / ssh / sshd_config para permitir a autenticação com uma chave. Você deve ter algo assim e verifique se as linhas não são comentadas:
PS: não esqueça de reiniciar o sshd depois de modificar o arquivo (/etc/init.d/sshd restart)
fonte
AuthorizedKeysFile
foi comentado e eu também tive que usar um caminho absoluto paraauthorized_keys
.Eu descobri que no meu sistema o problema era que o diretório do usuário (/ home / nome de usuário) estava equipado com o conjunto de permissões incorretas. Era
drwxr-x-w-
e precisava serdrwxr-xr-x
(com permissão de gravação apenas para o proprietário). A solução foi usar o chmod:fonte
Não sou especialista aqui, mas também deparei com essa questão. Aqui estão meus dois centavos , além de todas as outras sugestões.
Às vezes,
ssh-copy-id
copia a chave errada para o servidor remoto (pode ocorrer se você tiver várias chaves e / ou estiver usando nomes não padrão para arquivos de chaves) ou se o seu agente de autenticação estiver configurado incorretamente.Aqui está uma citação das páginas de manual :
Então, basicamente, você deseja verificar se:
ssh-add -L
saída)ssh-copy-id
mesma chave foi copiada para a máquina remota (faça o login no servidor remoto usando a senha e verifique o conteúdo de~/.ssh/authorized_keys
)ssh-copy-id
qual chave copiar:ssh-copy-id -i ~/.ssh/some_public_key
Espero que ajude.
fonte
ssh-copy-id
problema é :,DEFAULT_PUB_ID_FILE=$(ls -t ${HOME}/.ssh/id*.pub 2>/dev/null | grep -v -- '-cert.pub$' | head -n 1)
que será o padrão para a primeira chave alfabética - no meu caso, eu tinha umid_boot2docker.pub
(que é aparentemente o nome padrão para o material boot2docker ssh). Parece que existem várias implementações diferentes de ssh-copy-id; veio o meubrew install ssh-copy-id
, que por sua vez é retirado do openssh-portable. Minha página do homem menciona explicitamente esse comportamento ...O problema mais comum são permissões inválidas no lado do servidor. Verifique se nenhum dos seus diretórios pessoais
~/.ssh
e~/.ssh/authorized_keys
é gravável por qualquer pessoa, exceto você (em particular, eles não devem ser graváveis em grupo).Se esse não for o problema, execute
ssh -vvv server
e observe a visão do cliente da conversa. Em particular, verifique se o cliente está tentando a chave com o servidor.fonte
~/.ssh
e~/.ssh/authorized_keys
não pode ser gravável por qualquer pessoa, mas você.Além de todas as opções acima, sempre é possível verificar o arquivo de log sshd:
fonte
Tentei as outras correções, mas achei que precisava alterar o diretório inicial para não poder ser gravado por outras pessoas. O diretório inicial era 777. Mudei para 755 e funcionou.
fonte
no meu caso / etc / ssh / sshd_config continha o seguinte parâmetro:
Mas o ssh-copy-id criou um arquivo com o nome author_keys, então tive que modificar a entrada para o novo nome. mais informações sobre chaves_ autorizadas descontinuadas2
fonte
Como complemento à resposta de Omer Dagan para o CentOS 7 mais recente, use:
para olhar os logs sshd no servidor.
fonte
O problema foi que o RSAAuthentication foi desativado em / etc / ssh / ssh_config
fonte