Minha máquina parou recentemente de aceitar a autenticação de chave pública recebida. Eu tenho um desktop ubuntu 11.04 no qual ssh em uma máquina Windows. Eu uso massa de vidraceiro com concurso. Consigo me conectar, mas apenas com autenticação de senha interativa, não com minha chave rsa que eu configurei.
Eu já verifiquei que a chave está listada em ~ / .ssh / allowed_keys. Como faço para corrigir isso e o que verifico?
ssh
authentication
Andrew Redd
fonte
fonte
~
,~/.ssh
e~/.ssh/authorized_keys
são apenas gravável por você (em particular permissão de escrita grupo não). Procure/var/log/auth.log
entradas de log criadas no momento de suas tentativas de login. Copie e cole-os na sua pergunta (editando nomes para privacidade, se quiser). Verifique também se o problema está do lado do servidor ou não: copie a chave privada para a máquina Linux (você precisará converter o arquivo da chave privada do PuTTY no formato OpenSSH) e veja sessh localhost
funciona.Respostas:
Se a autenticação de chave pública não funcionar: verifique se, no lado do servidor, seu diretório pessoal (
~
), o~/.ssh
diretório e o~/.ssh/authorized_keys
arquivo são todos graváveis apenas pelo proprietário . Em particular, nenhum deles deve ser gravável pelo grupo (mesmo que o usuário esteja sozinho no grupo).chmod 755
ouchmod 700
está ok,chmod 770
não está.O que verificar quando algo está errado:
ssh -vvv
para ver muita saída de depuração. Se você postar uma pergunta perguntando por que não pode se conectar ao ssh, inclua esta saída (convém anonimizar os nomes de host e usuário)./var/log/auth.log
.fonte
Encontrei a mesma coisa e finalmente descobri que era porque criptografava meu diretório pessoal. O SSH não pode ler o arquivo allowed_keys até você efetuar login, portanto, basicamente, obriga você a se autenticar com senha primeiro. Consulte a seção sobre o diretório inicial criptografado no seguinte link:
https://help.ubuntu.com/community/SSH/OpenSSH/Keys#Encrypted_Home_Directory
fonte
Se você verificar as permissões nos diretórios, e houver um "." logo após eles, você pode ter o selinux ativado, o que prejudicará a troca de chaves e o padrão para identificação manual de senha.
Você pode desativar o SELinux para solucionar problemas seguindo as instruções aqui: http://www.centos.org/docs/5/html/5.1/Deployment_Guide/sec-sel-enable-disable-enforcement.html ou apenas edite o arquivo / etc / selinux / config e altere-o de "reforçando" para "desativado".
Espero que isto ajude.
fonte
chmod 600 ~/.ssh/authorized_keys
- o arquivo pode ser gravado em grupo. (via pyrosoft.co.uk/blog/2013/01/12/… )restorecon ~ -R
) é um bom ponto de partida.Eu garantiria que suas configurações no / etc / ssh / sshd_config estejam corretas.
Para forçar o uso apenas de PKI e não permitir senhas, encontre a linha
no seu arquivo, remova o comentário e defina-o como
Também leria o balanço das configurações para garantir que elas fizessem sentido. Em particular, tente garantir o uso de chaves RSA, pois o DSA é comprometido.
fonte
Uma causa possível do problema é que você possui chaves DSA, mas agora o SSH (aparentemente) assume o padrão de exigir chaves RSA. Eu tive o problema ao atualizar para o 16.04. Você pode ver mais aqui, mas a resposta curta é adicionar o seguinte a
~/.ssh/config
:fonte
Corrigi esse problema cancelando o comentário "PasswordAuthentication yes" em / etc / ssh / sshd_config.
fonte
Devido à necessidade de solucionar problemas de comunicação entre duas máquinas diferentes, eu tinha duas chaves privadas no
~/.ssh
lado do cliente.Em vez de configurar cada host do servidor com a respectiva chave privada,
~/.ssh/identity
como eu deveria ter feito, eu tinha a chave secundária (e, neste caso, incorreta) configurada para todos os hosts:A correção
~/.ssh/identity
resolveu o problema:fonte
Eu apenas tive o mesmo problema, mas alterar as permissões com
chmod
não estava ajudando, pois acabou que eu não tinha a propriedade do~/.ssh/authorized_keys
arquivo. Você pode alterar a propriedade do.ssh
diretório com:fonte
De alguma forma, isso funcionou para mim:
root @ kaiser: ~ # vim / etc / ssh / sshd_config
Alterar essa linha de sim para não 28 StrictModes no
Tente novamente
sysadmin @ suselinux1: ~> com sysadmin kaiser Bem-vindo ao Ubuntu 12.04.1 LTS (i686 genérico do GNU / Linux 3.2.0-25)
Último login: Sex Nov 9 15:40:11 2012 from 10.1.3.25 sysadmin @ kaiser: ~ $ date vie nov 9 17:53:11 CST 2012 sysadmin @ kaiser: ~ $
fonte
sshd
documentos melhores , que não se enquadram exatamente na categoria "boa leitura de sábado"