この問題は、過去数日間私を悩ませてきました。
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を利用できることを前提としています。どちらも持っていません。新しい画像が必要なだけですか?
どんな助けでも大歓迎です...
ファイル転送クライアントであるWinSCPではなく、 PuTTY のような実際のSSHクライアントを使用します。すべての問題が消えます。
試したところ
$ Sudo su
あなたのアミと出来上がりの1つに!私は根です...
楽しんで!
[ec2-user@ip-10-244-146-238 ~]$ Sudo su
[root@ip-10-244-146-238 ec2-user]#
DebianまたはUbuntu EC2の場合:
PuTTYを介してrootパスワードを設定します。
Sudo passwd root
RootとしてPuTTYにログインします。
ubuntu@aws1:~$ su
Password:
/ 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
同じファイルで、次のように変更します。
PermitRootLogin yes
#PasswordAuthentication no
Sshを再起動します
service ssh restart
WinSCPからのパスワードでrootとしてログインします。
*編集する前にsshd_configファイルのバックアップを作成し、完了したら元に戻すことをお勧めします。
パスワードベースのアクセスを許可するには、sshd_configファイルを編集する必要があります。また、rootユーザーにパスワードを追加する必要があります。単純な手順に従ってください-Sudo passwd root Sudo nano -w/etc/ssh/sshd_configコメントを解除/次の行を追加PasswordAuthentication yes
(バグレポート?)これは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]#
ファイル:
/ etc/sudoers
線があります
デフォルトは必須です
これをコメントアウトすると、エラーが解消されます。
まず、yumコマンドの何かにttyがなくなった理由を理解しようと思います。
/ etc/sudoersのようなセキュリティ関連のファイルを変更することは、潜在的に静かで危険です。