Я пытаюсь запустить 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.