Каким образом облачная версия 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 для получения дополнительной информации:)