SSHing на сервер EC2 с ошибкой. Пожалуйста, войдите как пользователь ec2, а не как пользователь root - PullRequest
54 голосов
/ 20 ноября 2010

Вопрос в заголовке.Почему это так, я использовал команду ssh: ssh -i mykey.pem root@xxx-xxx-xx-xx-xxx.compute-1.amazonaws.com Но я получаю эту ошибку, ничего не найти в Google.Что я делаю не так?

Ответы [ 7 ]

77 голосов
/ 20 ноября 2010

Вы регистрируетесь как ec2-user, как предложил Клаус:

ssh -i key.pem ec2-user@host

... и затем вы используете sudo для запуска команд.Например, чтобы отредактировать файл /etc/hosts, который принадлежит пользователю root и требует привилегии root: sudo nano /etc/hosts.

Или вы запускаете sudo su, чтобы стать пользователем root.

64 голосов
/ 02 декабря 2010

По умолчанию root пользователь не может войти в систему, но вы можете использовать ec2-user, как указано другими.

После входа в систему с помощью ec2-user вы переключаетесь на root и изменяете конфигурацию SSH..

Чтобы стать пользователем root, выполните:

sudo su -

Отредактируйте файл конфигурации демона SSH /etc/ssh/sshd_config, например, с помощью vi, и замените запись PermitRootLogin на следующую:

PermitRootLogin without-password

Перезагрузите конфигурацию демона SSH, выполнив:

/etc/init.d/sshd reload

Отображается сообщение Please login as the ec2-user user rather than root user., поскольку команда выполняется при входе в систему с закрытым ключом.Чтобы удалить эту команду, отредактируйте файл ~/.ssh/authorized_keys и удалите опцию command.Строка должна начинаться с типа ключа (например, ssh-rsa).

(*) Делайте на свой страх и риск.Я рекомендую вам всегда оставлять консоль открытой на тот случай, если вы не сможете войти после внесения изменений в конфигурацию.

Для справки вы можете прочитать справочные страницы:

man sshd_config
man sshd
11 голосов
/ 05 августа 2013

Я столкнулся с подобной проблемой при настройке кластера hadoop на Amazon ec2.

Мой головной узел должен иметь root-доступ по ssh к каждому рабочему / подчиненному узлу. Я установил псевдонимы подключений, добавив IP-адрес, частный адрес и псевдоним каждого подчиненного узла в файл /etc/hosts/. (Я получаю эти данные, выполнив команду echo -e "`hostname -i`\t`hostname -f`\talias-name", где alias-name - это то, что я называю каждым узлом (например, head или n1). Затем я помещаю эти выходные данные для каждого узла в файл /etc/hosts каждого узла.

Проблема, с которой я столкнулся, заключается в том, что когда я набираю ssh n1, находясь в моем головном узле, чтобы подключить ssh к моему первому подчиненному узлу, я получаю то же сообщение об ошибке: Please login as the use "ec2-user" rather than the user "root". Поэтому, проведя некоторое исследование, я выяснил, как это исправить.

Первый:

  • SSH на ваш сервер. не-root (ec2-user) доступ здесь хорошо.
  • Тогда su - ваш путь в корень. Сейчас vi /etc/ssh/sshd_config и откомментируйте строку PermitRootLogin yes.
  • Выход из редактора vi.
  • Теперь перезапустите демон ssh, набрав service sshd stop затем service sshd start.

Второй:

  • Теперь вот часть, за которую мне пришлось копать,
  • пробег vi /root/.ssh/authorized_keys
  • Закомментируйте все до ssh-rsa. Просто поставьте # в начале содержимого файла, перед no-port-forwarding ... и нажмите ввод на ssh-rsa, чтобы переместить его в следующая строка (таким образом, вам не нужно ничего удалять в случае, если вы хочу отказаться).
  • выход из редактора vi

Теперь вы должны иметь возможность войти в систему root без появления этого сообщения об ошибке.

Также, если вы используете псевдонимы для настройки кластера; Повторите те же шаги на каждом узле. Сначала используйте ssh, используя ec2-user, затем выполните шаги. После добавления IP-адреса, личного адреса и информации о псевдониме в ваш файл /etc/hosts вы сможете войти в корневой каталог каждого узла, используя псевдоним, например ssh n1.

Учебник, которому я следовал, находится здесь: https://www.youtube.com/watch?v=xrxQXfE7t9A

Но это не обсуждало проблему с root-логином.

Надеюсь, это поможет! У меня это сработало.

* Имейте в виду, что я не принимал во внимание какую-либо безопасность. Это просто настройка практики / разработки.

7 голосов
/ 20 ноября 2010

Я думаю, что просто просит вас войти под другим именем пользователя.У вас есть пользователь с именем ec2-user?Если так, попробуйте это вместо:

ssh -i mykey.pem ec2-user@xxx-xxx-xx-xx-xxx.compute-1.amazonaws.com
1 голос
/ 04 марта 2019

Решено!Попробуйте сравнить файл корневого ключа и файл ключа пользователя)

diff /root/.ssh/authorized_keys /home/user/.ssh/authorized_keys

... и посмотрите

1 голос
/ 28 мая 2018

Я столкнулся с той же проблемой, когда пытался получить доступ к своему экземпляру EC2 с правами root через клиент Windows PuTTY, так я решил проблему.

  1. Доступ к файлу конфигурации SSH и его редактирование для разрешения аутентификации пользователя с правами root и .

    • Войти как ec2-пользователь (по умолчанию это разрешено)
    • Введите команду ниже, чтобы открыть конфигурацию ssh

      sudo vi /etc/ssh/sshd_config

    • Отредактируйте файл конфигурации SSH, как показано ниже, с помощью vi, как использовать редактор vi

      PermitRootLogin yes (удалить # при запросе, если он присутствует)

      PasswordAuthentication да

  2. Перезапустить SSH

    sudo /etc/init.d/sshd restart

  3. Изменить / установить пароль пользователя root

    sudo passwd root

    введите новый пароль и введите его повторно (не менее 8 символов)

  4. Выйти из текущей сессии и закрыть PuTTY

    exit

  5. Попробуйте еще раз войти в систему как root и введите ранее установленный пароль.
0 голосов
/ 05 мая 2012

Отредактируйте / etc / ssh / sshd_config и убедитесь, что это установлено:

PasswordAuthentication да

Затем перезагрузите SSH:

systemctl reload sshd.service

Теперь вы можете войти как пользователи, отличные от ec2-user.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...