Назад | Перейти на главную страницу

sshd на минимальном Linux: «Не удалось ввести пароль для недействительного пользователя root»

Я пытаюсь запустить SSH-сервер на минимальной установке Fedora. Я имею в виду действительно минимальный: тот, который производится построитель образа диска конструктор рамдисков. У него даже нет пользователей (отсутствует /etc/passwd и т.д).

Итак, теперь я пытаюсь запустить sshd в такой системе. Во время сборки копирую /etc/{passwd,group,shadow} из минимальной (хм .. менее минимальной) системы. Я также заранее создаю ключи хоста и sshd_config:

PermitRootLogin yes
UsePAM no
UseDNS no
UsePrivilegeSeparation no
PasswordAuthentication yes
HostKey /etc/ssh/ssh_host_key
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key

(полный сценарий). В ramdisk я установил пароль root через chpasswd и запустил SSHd с

/sbin/sshd -p $SSH_PORT

(SSH_PORT пока 22 - по умолчанию). И после того, как ramdisk загрузится и отчитается, я пытаюсь войти в систему. Здесь начинается самое интересное:

debug1: Authentications that can continue: publickey,password,keyboard-interactive
debug1: Next authentication method: password
root@192.0.2.114's password: 
debug1: Authentications that can continue: publickey,password,keyboard-interactive
Permission denied, please try again.
root@192.0.2.114's password:

В журналах ssh на сервере я вижу

debug1: userauth-request for user root service ssh-connection method password
Could not get shadow information for NOUSER
Failed password for invalid user root from 192.0.2.1 port 38734 ssh2

Так что, несмотря на все, что я пробовал, пользователь 'root'остается недействительным. Любые идеи приветствуются.

Я полагаю, вы уже давно решили свою проблему?

У меня такой же тип установки, но на Debian, а не на Fedora, минимальном Linux без PAM и т.д., и я наткнулся на эту проблему. Google не помог, после загрузки открытых источников SSH я обнаружил, что sshd в отсутствие PAM использует функцию glibc, getpwnam(), в процессе аутентификации. Эта функция, без сомнения, является универсальной и полезной в любом типе среды, но она не прибегает к проверке /etc/passwd и друзья, если libnss_files.so.* не установлен.

Добавление этой библиотеки в мой минимальный Linux устранило проблему для меня. Мне интересно узнать причину в вашем случае?

Возможно, вы не видели этот комментарий по умолчанию sshd_config файл?

# WARNING: 'UsePAM no' is not supported in Fedora and may cause several
# problems.

В Fedora и Red Hat необходимо включить аутентификацию PAM.