O CentOS está ignorando minha chave pública

8

Estou tentando me conectar ao meu próprio servidor CentOS usando SSH; Consigo me conectar bem com uma senha; Estou tentando conectar-me à minha chave pública, mas o servidor não tenta a autenticação da chave pública. Eu segui todas as instruções desta página no wiki do CentOS e verifiquei o seguinte:

  • Estou executando o CentOS 6.0 ou posterior

  • Meu sshd_config tem o seguinte:

    PermitRootLogin no
    PubkeyAuthentication Yes
    RSAAuthentication yes
    AuthorizedKeysFile .ssh/authorized_keys
    
  • Eu criei uma chave privada na pasta .ssh / no meu diretório pessoal no cliente

  • O texto completo da chave pública (gerada por ssh-keygen) ocupa uma única linha no arquivo .ssh / allowed_keys no meu diretório pessoal no servidor.
  • Eu tenho os seguintes modos de permissão definidos no cliente e no servidor:

    chmod 700 .ssh
    chmod 600 .ssh/*
    
Eu gosto de comida
fonte

Respostas:

13

De acordo com este relatório de edição no site do CentOS, isso é causado por um "recurso" upstream no SELinux; se o SELinux estiver aplicando, impedirá o servidor de usar a autenticação pubkey. Não há indicação de que esse comportamento mude no futuro próximo. Para ver se esse problema se aplica a você, digite sestatuse veja se ele informa "Modo atual" como enforcing.

Eu sei de duas soluções alternativas.

  • Você pode definir o SELinux no modo permissivo. Digite setenforce 0para alterar a diretiva imediatamente e, em seguida, abra /etc/selinux/confige verifique SELINUX=permissive.
  • Restaure o arquivo no contexto de segurança correto:

    restorecon -R -v ~$USER/.ssh
    
Eu gosto de comida
fonte
Esse era mesmo o problema?
Andy Shinn
Foi, embora meu administrador do sistema me tenha dito mais tarde que o SELinux não deveria estar rodando em primeiro lugar.
ILikeFood