web-dev-qa-db-ja.com

Amazon EC2インスタンスでルートSSHアクセスを有効にするにはどうすればよいですか?

この問題は、過去数日間私を悩ませてきました。

Amazon EC2でのLAMPサーバーのセットアップに取り組んでいます。主な問題は、多くのハイエンド処理を必要とするクライアント用のアプリケーションを書いていることです。AmazonEC2は良い選択のように思えました。

最初は、何もない基本的なAMIから始めました。 rootアクセスを使用してSSHにログインして(WinSCPを使用)、ec2-userを使用するように言われました。

Ec2-userを使ってみましたが、ログインすることはできましたが、まだroot権限がなく、Apacheをインストールできませんでした。何らかの理由で "Sudo"コマンドについて知り、この問題について読んだほとんどすべての記事で、ルートアクセスを使用するか、ec2-userとユーザーSudoにログインするように言っていました。

それ以来、LAMPが既にインストールされている別のAMIで再試行しました。私はそれを機能させ、データベースをセットアップし、それからウェブサイトを実行し始めることができました。しかし、いくつかの拡張機能をインストールする必要がありました。つまり、このアプリケーションで使用しようとしている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

Rootアクセス権がないため、yumを使用できません。rootにログインするたびに、ec2-userを使用するように指示するか、持っていないパスワードを入力します。もう1つの方法は、Sudoを使用してec2-userをrootのように動作させることでしたが、「申し訳ありませんが、Sudoを実行するにはttyが必要です」というエラーが常に発生します。私はそのエラーメッセージをオンラインで実行しました。ユーザーをsudoersに追加する必要があるようです... rootアクセスなしでは実行できません。

このまったく同じ問題が、2つの別々のAMIに悩まされました。 1つ目はec2-userとしてログインする必要がある(そしてSudoを実行するにはttyが必要です)というメッセージを受け取りましたが、2つ目(LAMPがインストールされている場合)はrootとユーザーのパスワードを入力するように要求しました同じSudoエラーが発生しました。

以下は、私が使用したAMIのIDです。

AMI-8c1fece5
AMI-6ae81503

LAMPがインストールされている3つ目のAMIも後で試しましたが、そのAMIにさえすら入りませんでした。

SSHキーをダウンロードし、PuttyGenを使用してそれをppkファイルに変換しました。 ec2-userとして正常にログインできますが、どこからでもrootアクセスを取得できません。

私はこれについてのヘルプをかなり探していましたが、私が読んだすべての記事は、ユーザーがrootアクセス権を持っているか、ec2-userでSudoを利用できることを前提としています。どちらも持っていません。新しい画像が必要なだけですか?

どんな助けでも大歓迎です...

28
JaidynReiman

ファイル転送クライアントであるWinSCPではなく、 PuTTY のような実際のSSHクライアントを使用します。すべての問題が消えます。

5
Dan Grossman

試したところ

$ Sudo su

あなたのアミと出来上がりの1つに!私は根です...

楽しんで!

[ec2-user@ip-10-244-146-238 ~]$ Sudo su
[root@ip-10-244-146-238 ec2-user]# 
61
Alex Gitelman

DebianまたはUbuntu EC2の場合:

  1. PuTTYを介してrootパスワードを設定します。

    Sudo passwd root
    
  2. RootとしてPuTTYにログインします。

    ubuntu@aws1:~$ su
    Password:
    
  3. / etc/ssh/sshd_configファイルを編集して、最後のHostKeyステートメントまたは以下の例の最後の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. WinSCPからのパスワードでrootとしてログインします。

*編集する前にsshd_configファイルのバックアップを作成し、完了したら元に戻すことをお勧めします。

4
Thaddeus

パスワードベースのアクセスを許可するには、sshd_configファイルを編集する必要があります。また、rootユーザーにパスワードを追加する必要があります。単純な手順に従ってください-Sudo passwd root Sudo nano -w/etc/ssh/sshd_configコメントを解除/次の行を追加PasswordAuthentication yes

1
Mad Scientist

(バグレポート?)これは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]#
1
HoofarLotusX

ファイル:

/ etc/sudoers

線があります

デフォルトは必須です

これをコメントアウトすると、エラーが解消されます。

まず、yumコマンドの何かにttyがなくなった理由を理解しようと思います。

/ etc/sudoersのようなセキュリティ関連のファイルを変更することは、潜在的に静かで危険です。

1
anw