CentOS игнорирует мой открытый ключ


8

Я пытаюсь подключиться к своему собственному серверу CentOS, используя SSH; Я могу нормально соединиться с паролем; Я пытаюсь соединиться с моим открытым ключом, но сервер не пытается аутентифицировать открытый ключ. Я следовал всем инструкциям на этой странице в CentOS вики и проверил следующие вещи:

  • Я использую CentOS 6.0 или более позднюю версию

  • Мой sshd_config имеет следующее:

    PermitRootLogin no
    PubkeyAuthentication Yes
    RSAAuthentication yes
    AuthorizedKeysFile .ssh/authorized_keys
    
  • Я создал закрытый ключ в папке .ssh / в моей домашней директории на клиенте.

  • Полный текст открытого ключа (сгенерированного ssh-keygen) занимает одну строку в файле .ssh / authorized_keys в моем домашнем каталоге на сервере.
  • У меня установлены следующие режимы разрешений на клиенте и сервере:

    chmod 700 .ssh
    chmod 600 .ssh/*
    

Ответы:


13

Согласно этому отчету о проблемах на веб-сайте CentOS, это вызвано основной функцией SELinux; если SELinux применяет, он не позволит серверу использовать аутентификацию pubkey. Нет никаких признаков того, что это поведение изменится в ближайшем будущем. Чтобы увидеть, относится ли эта проблема к вам, введите sestatusи посмотрите, сообщает ли он «Текущий режим» как enforcing.

Я знаю два обходных пути.

  • Вы можете установить SELinux в разрешающий режим. Введите текст, setenforce 0чтобы изменить политику немедленно, а затем откройте /etc/selinux/configи убедитесь, что SELINUX=permissive.
  • Восстановите файл в правильном контексте безопасности:

    restorecon -R -v ~$USER/.ssh
    

Была ли это действительно проблема?
Энди Шинн

Это было, хотя мой системный администратор позже сказал мне, что SELinux не должен был работать в первую очередь.
ILikeFood
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.