AWS EC2のSSHログインをパスワード方法に変更

2021-06-22

概要

AWSのEC2インスタンスのSSHログイン方法を公開鍵と秘密鍵を使用した鍵認証方式からパスワード方式に変更する方法を紹介します。使用するOS(Amazon Linux, RHEL5, CentOSなど)によって少し手順が異なるかもしれませんが、その場合は使用するOSに置き換えて下さい。手順はCentOSで確認をとっています。また設定ミスするとSSH接続ができなくなる場合もありますのでSnapshotやAMIなどでバックアップをとってから作業をした方が良いかと思います

一般ユーザー設定

使用するOSによってrootでのSSHログインが許可されているかも知れませんが、この設定を変更後はrootログインを不可としますので、SSHでログインするユーザーを作成します

$ sudo useradd awsuser
$ sudo passwd awsuser
パスワードを入力します

作成した一般ユーザーでパスワードなしでsudoコマンドを実行できるようにします。
※sudoの使用するセキュリティなどは、使用されるセキュリティポリシーで変更して下さい。

$ sudo visudo
## Same thing without a password
# %wheel        ALL=(ALL)       NOPASSWD: ALL
# パスワードなしでsudoコマンドを実行する場合は、以下の行を追加します
awsuser   ALL=(ALL)       NOPASSWD: ALL

※ 作成したユーザーsudoコマンドを実行するだけの場合は以下となります(パスワードを要求されます)

$ sudo visudo
## Allows people in group wheel to run all commands
# %wheel        ALL=(ALL)       ALL
# sudoコマンドを実行できるようにするには以下の行を追加します
awsuser   ALL=(ALL)       ALL

SSHの設定変更

設定ファイルを変更するので、バックアップを取ります

$ sudo cp -p /etc/ssh/sshd_config /etc/ssh/sshd_config.org

設定ファイルを以下のように変更します

$ sudo vi /etc/ssh/sshd_config

# rootでのログインを拒否
PermitRootLogin no    
# パスワードなしでのログインを禁止
PermitEmptyPasswords no
# パスワード認証にする
PasswordAuthentication yes

sshdを再起動します

$ sudo /etc/init.d/sshd restart

SSHでパスワードなしでログインしてみる

ログインできなくなると困るので、今接続しているセッションをそのままにしておき、新しいSSH接続で、パスワード方式のSSH接続ができるか確認します

新しいターミナルで以下のコマンドを実行します。ユーザー、接続先は使用される環境によって変更して下さい

$ ssh awsuser@ec2-x-x-x-x.us-west-2.compute.amazonaws.com

Linux,仮想化AWS

Posted by admin