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

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

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

Попытка подключиться к такому устройству приводит к следующему:

maxim@maxim-desktop:~/workspace/integration/deployengine$ ssh [email protected]
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.

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

решение1

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

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

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

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

решение2

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

sudo grep "login as the ubuntu user" /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.

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

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

sudo -i

решение3

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

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

решение4

Проверьте /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”.

Одна из наиболее полезных настроек — «без -password», которая позволяет вам входить в систему как root, но только если вы используете аутентификацию с открытым ключом. man sshd_config для получения дополнительной информации:)

Связанный контент