O CentOS está ignorando minha chave pública

8

Estou tentando conectar-me ao meu próprio servidor CentOS usando SSH; Eu sou capaz de se conectar bem com uma senha; Eu estou tentando se conectar com minha chave pública, mas o servidor não tenta autenticação de chave pública. Eu segui todas as instruções em esta 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 (gerado por ssh-keygen ) ocupa uma única linha no arquivo .ssh / authorized_keys no meu diretório inicial no servidor.
  • Eu tenho os seguintes modos de permissão definidos no cliente e no servidor:

    chmod 700 .ssh
    chmod 600 .ssh/*
    
por ILikeFood 22.06.2012 / 23:30

1 resposta

13

De acordo com este relatório do problema no site do CentOS, isso é causado por um "recurso" do upstream no SELinux; Se o SELinux for aplicado, ele impedirá que o servidor use a autenticação do pubkey. Não há indicação de que esse comportamento será alterado no futuro próximo. Para ver se esse problema se aplica a você, digite sestatus e veja se ele relata "Modo atual" como enforcing .

Eu sei de duas soluções alternativas.

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

    restorecon -R -v ~$USER/.ssh
    
por 22.06.2012 / 23:30