ssh с ключом rsa запрашивает пароль

У меня есть сервер с операционной системой Ubuntu 14.04 x64.

Часть моего файла sshd_config ( весь файл ):

 Port 2202 Protocol 2 PermitRootLogin without-password StrictModes yes RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile /etc/ssh/keys/%u/authorized_keys RhostsRSAAuthentication no PermitEmptyPasswords no ChallengeResponseAuthentication no #PasswordAuthentication yes UsePAM yes 

В папке /etc/ssh/keys каждого системного пользователя есть своя папка с файлом authorized_keys :

 ls -l /etc/ssh/keys drw------- 2 test.com test.com 4096 Nov 20 06:53 test.com drw------- 2 root root 4096 Nov 20 02:29 root 

Разрешения этих файлов authorized_keys верны:

 ls -l /etc/ssh/keys/* /etc/ssh/keys/test.com: total 4 -r-------- 1 test.com test.com 960 Nov 20 07:17 authorized_keys /etc/ssh/keys/root: total 4 -r-------- 1 root root 395 Nov 20 02:29 authorized_keys и ls -l /etc/ssh/keys/* /etc/ssh/keys/test.com: total 4 -r-------- 1 test.com test.com 960 Nov 20 07:17 authorized_keys /etc/ssh/keys/root: total 4 -r-------- 1 root root 395 Nov 20 02:29 authorized_keys 

У меня есть тот же публичный id_rsa в файле authorized_keys root и test.com.
Я могу войти с помощью root через ssh, но с test.com мне будет предложено ввести пароль.

Вот информация об отладке при попытке подключения с пользователем test.com:

 debug1: Next authentication method: publickey debug1: Offering RSA public key: /Users/Ivan/.ssh/id_rsa debug1: Authentications that can continue: publickey,password debug1: Trying private key: /Users/Ivan/.ssh/id_dsa debug1: Next authentication method: password 

Когда я пытаюсь войти в систему с правами root, мне это удастся:

 debug1: Next authentication method: publickey debug1: Offering RSA public key: /Users/Ivan/.ssh/id_rsa debug1: Server accepts key: pkalg ssh-rsa blen 279 debug1: Authentication succeeded (publickey). 

У меня Googled много вещей. Не удалось найти ничего, что позволило бы решить мою проблему.

У меня есть сценарий, который создает системных пользователей, использующих команду useradd и эти пользователи по умолчанию не имеют паролей. Я обнаружил, что пользователи системы без пароля не могут войти через ssh, поэтому я добавил пароль для пользователя test.com. Не работает.

Я видел, что UsePAM yes может быть проблемой. Я установил его в UsePAM no . Не работает.

И да, я service ssh restart после каждого изменения файла sshd_config .

Кажется, я все пробовал, и теперь я не знаю.

Любая помощь будет оценена!

  • Как открыть порт SSH 22?
  • Как сообщить systemd запустить sshd позже в последовательности загрузки?
  • Как сделать sash учетной записи capabele только для sshfs и rsync?
  • Настройка оболочки OpenSSH для любого / любого подключаемого имени пользователя
  • Мой туннель обратного ssh использует keepalives, но они не помогают
  • Отключить баннер ssh для определенных пользователей или ips
  • CentOS 6.4: проблема SSH RSA, « == rsa-key-20140711 \ n не удалось"
  • Понимание вывода команды `who -a`
  • 2 Solutions collect form web for “ssh с ключом rsa запрашивает пароль”

    У меня была такая же проблема, и я обнаружил, что SELinux не позволяет читать доступ к /usr/bin/sshd при попытке удаленного доступа для некоторых пользователей. Обычно для пользователей, у которых нет домашней папки в /home/ . Вы можете запустить

     cat /var/log/messages | grep -i ssh 

    на целевом сервере , и вы должны увидеть аналогичную строку, указывающую на ошибку:

     <Date/Time> <hostname> python: SELinux is preventing /usr/sbin/sshd from read access on the file authorized_keys.#012#012***** Plugin catchall (100. confidence) suggests **************************#012#012 If you believe that sshd should be allowed read access on the authorized_keys file by default.#012Then you should report this as a bug.#012 You can generate a local policy module to allow this access.#012Do#012allow this access for now by executing:#012# ausearch -c 'sshd' --raw | audit2allow -M my-sshd#012# semodule -i my-sshd.pp#012` 

    Вы можете редактировать разрешения SELinux для разрешения ssh-подключений или просто отключить его (менее безопасный), чтобы обойти это.

    sshd очень придирчив, когда дело доходит до разрешений!

    Кажется, что разрешения каталога /etc/ssh/keys/test.com/ неверны! В настоящее время каталог читается / записывается, но не может быть введен. chmod u+x /etc/ssh/keys/test.com/ && chmod o+rx /etc/ssh/keys должны решить вашу проблему. Хотя root может войти в каталог, я предполагаю, что sshd проверяет, чтобы восьмеричные разрешения были 0700 или 0755 + 0600 для файла authorized_keys. Особенно, когда StrictMode yes .

    Без права доступа к каталогу и правильных разрешений файл authorized_keys не может быть прочитан или игнорируется sshd из соображений безопасности.

    Interesting Posts
    Linux и Unix - лучшая ОС в мире.