Вопрос как заголовок. Почему это, я использовал команду 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.