Как включить корневой доступ по SSH в экземпляре Amazon EC2? - PullRequest
27 голосов
/ 09 июля 2011

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

Я работаю над настройкой сервера 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-пользователя.У меня тоже нет.Просто мне нужно новое изображение?

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

Ответы [ 6 ]

61 голосов
/ 09 июля 2011

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

$ sudo su

на одном из твоих друзей и вуаля! Я корень ...

Веселись!

[ec2-user@ip-10-244-146-238 ~]$ sudo su
[root@ip-10-244-146-238 ec2-user]# 
5 голосов
/ 09 июля 2011

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

4 голосов
/ 08 февраля 2017

Для Debian или Ubuntu EC2:

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

    sudo passwd root
    
  2. Войдите в систему как 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

В том же файле измените следующее, чтобы оно выглядело следующим образом:

PermitRootLogin yes
#PasswordAuthentication no

Перезапустите SSH

service ssh restart

Войдите в систему как пользователь root с паролем от WinSCP

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

1 голос
/ 06 марта 2015

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

1 голос
/ 21 декабря 2013

Файл:

/ etc / sudoers

содержит строку

Значения по умолчанию requiretty

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

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

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

1 голос
/ 07 ноября 2013

(Отчет об ошибке?) Это мой журнал на экземпляре 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 ec2-user@ecXXXX.compute-1.amazonaws.com
    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]#
...