Вопрос как заголовок. Почему это, я использовал команду ssh: ssh -i mykey.pem [email protected] Но я получаю эту ошибку, ничего не нахожу в google. Что я делаю неправильно?
SSHing на сервер EC2 через дает ошибку Пожалуйста, войдите в систему как пользователь пользователя ec2, а не пользователь root
Ответ 1
Вы вошли в систему как ec2-user
, как предложил Клаус:
ssh -i key.pem [email protected]
... и затем вы используете sudo
для запуска команд. Например, для редактирования файла /etc/hosts
, который принадлежит root, и для него требуются привилегии root: sudo nano /etc/hosts
.
Или вы запустите sudo su
, чтобы стать пользователем root
.
Ответ 2
По умолчанию 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
Ответ 3
Я столкнулся с аналогичной проблемой при настройке кластера hadoop на Amazon ec2.
Моя голова node должна иметь root ssh доступ к каждому рабочему/подчиненному узлам. Я подключил соединения, добавив в /etc/hosts/
каждый подчиненный node IP-адрес, частный адрес и псевдоним. (Я получаю эти данные, запустив команду echo -e "`hostname -i`\t`hostname -f`\talias-name"
, где alias-name
- это то, что я называю каждый node (head
или n1
например). Затем я помещаю этот вывод для каждого node в каждый node /etc/hosts
.
Проблема, с которой я столкнулся, заключается в том, что когда я печатаю ssh n1, находясь в моей голове node, в ssh в мое первое подчиненное node, я получаю такое же сообщение об ошибке: Please login as the use "ec2-user" rather than the user "root".
Поэтому, после некоторых исследований, я выяснил, как это исправить.
Сначала:
- ssh на ваш сервер. доступ к не-root (ec2-user) здесь прекрасен.
- Затем
su -
ваш путь в root. Теперьvi /etc/ssh/sshd_config
и un-comment строкаPermitRootLogin yes
. - Выйти из редактора vi.
- Теперь перезапустите демон ssh, набрав
service sshd stop
, затемservice sshd start
.
Второй:
- Теперь, вот часть, которую мне пришлось копать,
- run
vi /root/.ssh/authorized_keys
- Комментируйте все до
ssh-rsa.
Просто положите#
в начале содержимого файла, доno-port-forwarding
... и нажмите enter наssh-rsa
, чтобы переместить его на следующей строки (таким образом вам не нужно ничего удалять, если вы хочу отступить). - exit vi editor
Теперь вы можете войти в систему root без появления сообщения об ошибке.
Кроме того, если вы используете псевдонимы для настройки кластера; Повторите те же шаги для каждого node. Сначала ssh в использовании пользователя ec2, выполните следующие действия.
После добавления IP-адреса, частного адреса и информации псевдонима в файл /etc/hosts
вы можете использовать ssh для каждого корня node, используя имя псевдонима, например ssh n1
.
Следующее учебное пособие приведено здесь: https://www.youtube.com/watch?v=xrxQXfE7t9A
Но он не обсуждал проблему с корневым входом.
Надеюсь, что это поможет! Это сработало для меня.
* Имейте в виду, что я не беспокоился о безопасности. Это просто практика /dev setup.
Ответ 4
Я думаю, что он просто просит вас войти в систему с другим именем пользователя. У вас появился пользователь под названием ec2-user
? Если да, попробуйте это вместо:
ssh -i mykey.pem [email protected]
Ответ 5
Измените/etc/ssh/sshd_config и убедитесь, что это установлено:
PasswordAuthentication yes
Затем перезагрузите SSH:
systemctl reload sshd.service
Теперь вы можете войти в систему как пользователи, отличные от пользователя ec2.