Как включить root-доступ по SSH в инстансе Amazon EC2?

Эта проблема беспокоит меня последние несколько дней.

Я работал над настройкой сервера LAMP на Amazon EC2. Основная проблема заключается в том, что я пишу приложение для клиента, требующего большого объема высокопроизводительной обработки, и Amazon EC2 показался мне хорошим выбором.

Изначально я начал с простого AMI, в котором на самом деле ничего не было. Я попытался использовать root-доступ для входа в SSH (используя WinSCP), и мне сказали использовать ec2-user.

Я попытался использовать ec2-user, и мне удалось войти в систему. Однако у меня все еще не было root-доступа, и я не мог установить apache. У меня была причина, и я узнал о команде «sudo», и почти в каждой статье, которую я читал по этой проблеме, говорилось, что нужно либо использовать root-доступ, либо войти в ec2-user и user sudo.

С тех пор я попробовал еще раз с другим AMI, в котором уже была установлена ​​LAMP. Я смог заставить его работать, настроить базу данных и запустить веб-сайт на ее основе. Однако мне все же нужно было установить некоторые расширения. А именно, API, который я пытаюсь использовать для этого приложения, требует установки SOAP.

Вот моя дилемма:

/$ whereis soap
soap:
/$ whereis yum
yum: /usr/bin/yum /etc/yum /etc/yum.conf /usr/share/man/man8/yum.8.gz
/$ yum install php-soap
Loaded plugins: fastestmirror, priorities, security
You need to be root to perform this command.
/$ sudo yum install php-soap
sudo: sorry, you must have a tty to run sudo

Command 'sudo yum install php-soap' failed with return code 1 and error message sudo: sorry, you must have a tty to run sudo

Я не могу использовать yum, потому что у меня нет root-доступа, и всякий раз, когда я вхожу в root, он либо говорит мне использовать ec2-user, либо вводит пароль, которого у меня нет. Другой альтернативой было использование sudo, чтобы пользователь ec2 действовал как root, но я всегда получаю сообщение об ошибке «извините, у вас должен быть tty для запуска sudo». Я запустил это сообщение об ошибке в Интернете и, похоже, мне нужно добавить пользователя в sudoers ... чего я не могу сделать без корневого доступа.

Та же самая проблема мучила меня на двух разных AMI. В первом я только что получил сообщение о том, что мне нужно войти в систему как пользователь ec2 (и у меня должен быть tty для запуска sudo), а во втором (с установленной LAMP) мне потребовалось ввести пароль для root, а для пользователя У меня такая же ошибка sudo.

Вот идентификаторы AMI, которые я использовал:

ami-8c1fece5
ami-6ae81503

Позже я также попробовал третий AMI, в котором также была установлена ​​LAMP ... Я даже не мог войти в него.

Я загрузил свой SSH-ключ и использовал PuttyGen, чтобы преобразовать его в файл ppk. Я могу успешно войти в систему как пользователь ec2, но нигде не могу получить root-доступ.

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

Любая помощь будет принята с благодарностью ...


person JaidynReiman    schedule 09.07.2011    source источник
comment
на самом деле, это не проблема программирования и не связана с stackoverflow.com ... следует переместить на unix.stackexchange.com - Однако Дэн Гроссман ответил на ваш вопрос ...   -  person sdolgy    schedule 09.07.2011
comment
Я подумал, что это связано с программированием, так что это будет считаться ...   -  person JaidynReiman    schedule 09.07.2011


Ответы (6)


Используйте настоящий SSH-клиент, например PuTTY, а не WinSCP, клиент передачи файлов. Все твои проблемы исчезнут.

person Dan Grossman    schedule 09.07.2011
comment
Спасибо ... Я новичок в приглашениях командной строки и SSH, поэтому я просто предположил, что WinSCP будет работать нормально ... Теперь он работает. - person JaidynReiman; 09.07.2011
comment
+1 единственное, что заставило меня работать для меня, это запуск sudo из PuTTY, а не WinSCP - спасибо за миллион, сделал мой день :) - person ; 07.11.2013
comment
это ... на самом деле не отвечает на вопрос Как включить корневой SSH-доступ в инстансе Amazon EC2? ... - person Félix Adriyel Gagnon-Grenier; 01.01.2016
comment
@ FélixGagnon-Grenier Это потому, что его настоящий вопрос заключался в том, как мне избавиться от этой ошибки you must have a tty to run sudo. Ответ на более общий, но не относящийся к задающему вопрос вопрос, заданный в заголовке, находится под моим. На него ответили в течение 5 лет, поэтому я не уверен, почему вы почувствовали необходимость опубликовать этот комментарий сейчас. - person Dan Grossman; 06.02.2016
comment
Ох .. Я не удовлетворял потребность, просто заявлял о своем понимании того, что я видел. Не имелось ввиду. - person Félix Adriyel Gagnon-Grenier; 06.02.2016
comment
Это не ответ - person Chaminda Bandara; 09.07.2018

Я только что попробовал

$ sudo su

на одной из ваших amis и вуаля! Я root ...

Развлекайся!

[ec2-user@ip-10-244-146-238 ~]$ sudo su
[root@ip-10-244-146-238 ec2-user]# 
person Alex Gitelman    schedule 09.07.2011
comment
Спасибо за помощь, но я делал это раньше, и это все равно не сработало. Проблема заключалась в программе, которую я пытался использовать (я просто подумал, что командная строка WinSCP будет работать так же, как и все остальное, но, видимо, нет ...) - person JaidynReiman; 09.07.2011
comment
мы можем установить пароль для root, как это, и как включить root-пользователя? По умолчанию он отключен. - person Chaminda Bandara; 09.07.2018

Для Debian или Ubuntu EC2:

  1. Установите пароль root через шпатлевку:

    sudo passwd root
    
  2. Войдите в putty как root

    ubuntu@aws1:~$ su
    Password:
    
  3. Отредактируйте файл / etc / ssh / sshd_config и закомментируйте последний оператор HostKey или тот, который похож на последний в примере ниже:

    vi /etc/ssh/sshd_config
    

потом

    # HostKeys for protocol version 2
    HostKey /etc/ssh/ssh_host_rsa_key
    HostKey /etc/ssh/ssh_host_dsa_key
    HostKey /etc/ssh/ssh_host_ecdsa_key
    #HostKey /etc/ssh/ssh_host_ed00000_key
  1. В том же файле измените следующее, как показано ниже:

    PermitRootLogin yes
    #PasswordAuthentication no
    
  2. Перезапустить ssh

    service ssh restart
    
  3. Войдите в систему как root с паролем от WinSCP

* Я рекомендую создать резервную копию файла sshd_config перед редактированием, а затем вернуться к исходному состоянию, когда это будет сделано.

person Thaddeus    schedule 08.02.2017
comment
Сервис должен быть sshd так service sshd restart - person tmarois; 21.09.2017
comment
@timothymarois sshd для CentOS / RedHat - person Chaminda Bandara; 09.07.2018

(Отчет об ошибке?) Это мой журнал для экземпляра ec2, иногда sudo su не работает. Мне нужно выйти и снова ssh, чтобы он заработал.

    [ec2-user@ip-XXXX ~]$ su root
    Password:
    su: incorrect password
    [ec2-user@ip-XXXX ~]$ exit
    logout
    Connection to ec2-50XXXX.compute-1.amazonaws.com closed.
    ssh -i automata.pem [email protected]
    whereis yum
    yum: /usr/bin/yum /etc/yum.conf /etc/yum /usr/share/man/man8/yum.8.gz
    [ec2-user@ip-XXXX ~]$ sudo su
    [root@ip-XXXX ec2-user]#
person HoofarLotusX    schedule 06.11.2013
comment
Я не уверен. Я даже больше не использую Amazon AWS. Однако настоящая проблема заключалась в том, что я использовал не ту программу. - person JaidynReiman; 08.11.2013

Файл:

/ и т. д. / sudoers

есть линия

По умолчанию requiretty

Комментируя это, вероятно, ошибка исчезнет.

Сначала я бы попытался понять, почему что-то в вашей команде yum больше не имеет tty.

Изменение файла, связанного с безопасностью, например / etc / sudoers, потенциально опасно.

person anw    schedule 21.12.2013

Вам необходимо отредактировать файл sshd_config, чтобы разрешить доступ на основе пароля. И вам нужно добавить пароль для вашего пользователя root. Просто выполните следующие действия: sudo passwd root sudo nano -w / etc / ssh / sshd_config Раскомментируйте / добавьте следующую строку PasswordAuthentication yes

person Mad Scientist    schedule 06.03.2015