Каким образом облачная версия Ubuntu обеспечивает "отсутствие root-входа" по ssh?

Я смотрю, чтобы настроить Ubuntu облачной версии по умолчанию, где запрещает вход в систему root.

Попытка подключиться к такой машине дает:

maxim@maxim-desktop:~/workspace/integration/deployengine$ ssh root@ec2-204-236-252-95.compute-1.amazonaws.com
The authenticity of host 'ec2-204-236-252-95.compute-1.amazonaws.com (204.236.252.95)' can't be established.
RSA key fingerprint is 3f:96:f4:b3:b9:4b:4f:21:5f:00:38:2a:bb:41:19:1a.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'ec2-204-236-252-95.compute-1.amazonaws.com' (RSA) to the list of known hosts.
Please login as the ubuntu user rather than root user.

Connection to ec2-204-236-252-95.compute-1.amazonaws.com closed.

Хотелось бы узнать, в каком конфигурационном файле настроена блокировка рута через ssh и как я могу изменить напечатанное сообщение?

4 ответа

Решение

Старый вопрос, но никто так и не ответил вам, и у меня был такой же вопрос: откуда взялась эта конфигурация?

Это происходит из cloudinit, именно в cc_ssh.py в /usr/lib/python2.7/dist-packages/cloudinit/config

Это, в свою очередь, напрямую зависит от файла /etc/cloud/cloud.cfg, Вы найдете строку disable_root: true,

Вы должны иметь возможность переопределить его, настроив свои пользовательские данные и добавив строку disable_root: false, Ваш облачный провайдер должен сделать пользовательские данные настраиваемыми.

Предполагая, что ваша конфигурация sshd имеет PermitRootLogin yes,

sudo grep "login as the ubuntu user" /root/.??*

Тем не менее, ссылка, предоставленная Майком Скоттом, является той, которую я настоятельно рекомендую вам внимательно прочитать и учесть.

ROOT SSH

Наконец, если вы хотите обойти стандарт безопасности Ubuntu и вернуться к старой практике разрешения использования ssh и rsync от имени root, эта команда откроет его для нового экземпляра официальных образов Ubuntu:

ssh -i KEYPAIR.pem ubuntu@HOSTNAME 'sudo cp /home/ubuntu/.ssh/authorized_keys /root/.ssh/' Это не рекомендуется, но это может быть способом заставить существующий код автоматизации EC2 продолжать работать до тех пор, пока вы не сможете перейти на методы sudo, описанные выше.

Я оставляю root-входы SSH отключенными, потому что любой общедоступный сервер с включенным SSH будет постоянно подвергаться избиениям днем ​​и ночью при попытках входа в систему из преступных ботнетов.

В другом месте документация предупреждает

Включение учетной записи Root требуется редко. Почти все, что вам нужно сделать как администратор системы Ubuntu, можно сделать с помощью sudo или gksudo. Если вам действительно нужен постоянный вход в систему Root, лучше всего смоделировать оболочку входа в Root, используя следующую команду...

sudo -i

Ответ здесь: http://alestic.com/2009/04/ubuntu-ec2-sudo-ssh-rsync

Скопируйте файл author_keys из учетной записи ubuntu в корневую учетную запись. Вход в систему с паролем отключен, поэтому вы должны иметь действительный ключ ssh для входа в любую учетную запись.

Проверьте /etc/ssh/sshd_config, опция называется "Разрешить root-вход"

 PermitRootLogin
         Specifies whether root can log in using ssh(1).  The argument
         must be “yes”, “without-password”, “forced-commands-only”, or
         “no”.

Еще один полезный параметр - "без пароля", который позволяет войти в систему как root, но только если вы используете аутентификацию с открытым ключом. man sshd_config для получения дополнительной информации:)

Другие вопросы по тегам