CentOS ignore ma clé publique

8

J'essaie de me connecter à mon propre serveur CentOS en utilisant SSH; Je peux me connecter correctement avec un mot de passe; J'essaie de me connecter avec ma clé publique, mais le serveur n'essaie pas d'authentification par clé publique. J'ai suivi toutes les instructions sur cette page dans le wiki CentOS et vérifié les choses suivantes:

  • J'utilise CentOS 6.0 ou une version ultérieure

  • Mon sshd_config a les éléments suivants:

    PermitRootLogin no
    PubkeyAuthentication Yes
    RSAAuthentication yes
    AuthorizedKeysFile .ssh/authorized_keys
    
  • J'ai créé une clé privée dans le dossier .ssh / de mon répertoire personnel sur le client

  • Le texte intégral de la clé publique (générée par ssh-keygen) occupe une seule ligne dans le fichier .ssh / authorized_keys de mon répertoire personnel sur le serveur.
  • J'ai les modes d'autorisation suivants définis sur le client et le serveur:

    chmod 700 .ssh
    chmod 600 .ssh/*
    
J'aime la nourriture
la source

Réponses:

13

Selon ce rapport de problème sur le site Web de CentOS, cela est dû à une «fonctionnalité» en amont dans SELinux; si SELinux est en vigueur, cela empêchera le serveur d'utiliser l'authentification par clé publique. Rien n'indique que ce comportement changera dans un avenir proche. Pour voir si ce problème s'applique à vous, tapez sestatuset voyez s'il signale "Mode actuel" comme enforcing.

Je connais deux solutions de contournement.

  • Vous pouvez régler SELinux en mode permissif. Tapez setenforce 0pour modifier la stratégie immédiatement, puis ouvrez /etc/selinux/configet assurez-vous SELINUX=permissive.
  • Restaurez le fichier dans le contexte de sécurité correct:

    restorecon -R -v ~$USER/.ssh
    
J'aime la nourriture
la source
Est-ce bien là le problème?
Andy Shinn
C'était le cas, bien que mon administrateur système m'ait dit plus tard que SELinux n'était pas censé fonctionner en premier lieu.
ILikeFood