EC2 Linux インスタンスの root パスワード設定

問題

プライベート キーを使って、SSH 経由で Linux が実行している EC2 インスタンスに接続でき、sudo を使って特権コマンドを実行できますが、インスタンスに root パスワードがありません。どうすれば取得できますか?
説明

セキュリティのためには、root パスワードは避けるのがベストプラクティスです。タスクを完了するために一時的な root パスワードを取得するには、次の手順に従います。

ユーザーに root 権限を付与するか、sudo su コマンドを実行して root ユーザー権限を継承します。
root ユーザー用のパスワードを手動で作成します。
タスクを完了します。
root ユーザーのパスワードを削除します。

解決法

一時パスワードを作成する場合は、以下を理解しておく必要があります。

デフォルトでは、sshd daemon は root ユーザーによる直接的な SSH 接続を拒否するよう設定されています。root ユーザーによる直接的な SSH アクセスを許可することは避けてください。その代わりに、オペレーティングシステムに関連付けられたユーザー ID (たとえば、多くの Linux ディストリビューションでは “ec2-user”) とキーペアで接続してください。
Linux を実行している EC2 インスタンスを起動するときは、SSH のキーペアをそのインスタンスと関連付け、プライベートキーを使用して認証し、SSH 経由でインスタンスにログインします。インスタンスのデフォルトのユーザー名は OS に依存します。たとえば、CentOS には “centos”、Ubuntu Linux には “ubuntu”、その他のほとんどの Linux ディストリビューションには “ec2-user” が使用されます。
インスタンスのユーザー ID とパスワードでログインした後、以下の例のように、それぞれのコマンドの前にプレフィックスとして sudo コマンドを使うと特権コマンドを使用できます。

$ sudo mount /dev/sdf1/localfolder

root ユーザーに一時パスワードを追加するには、以下を実行します。

1. SSH を使用して、Linux を実行している EC2 インスタンスに接続します。

2. 以下のコマンドを実行して、root ユーザーのアクセス許可を継承します。

$ sudo su

3. 次のコマンドを実行し、root ユーザーのパスワードを作成します。

# passwd root

4. プロンプトが表示されたら、一時的な root パスワードを入力し、確認のためにもう一度入力します。

注意: このコマンドは root ユーザーとして実行する必要があります。

タスクを完了した後、次のコマンドを実行して root パスワードを削除します。

# passwd –d root

コメントを残す