「Server refused our key」のエラー解決法を検証してみた

Pocket

渡邊です。

EC2インスタンスへのSSH接続における、鍵が拒否されるエラーの解決法を下記ページで拝見しました。今回はこれについて検証しました。

「Server refused our key」のエラーが発生した場合、Amazon EC2インスタンスにどのようにログインできますか?
https://aws.amazon.com/jp/premiumsupport/knowledge-center/ec2-server-refused-our-key/?nc1=h_ls

検証の流れ

今回は次のような流れで検証します。

[1] EC2インスタンス作成
[2] SSHログイン出来ない状態を作る
[3] ユーザーデータ入力
[4] SSHログイン確認

EC2インスタンス作成

EC2インスタンスを作成します。今回はAmazon LinuxのAMIを使用します。

SSHログイン出来ない状態を作る

作成したEC2インスタンスにSSHログインします。
今回の検証では、『ホームディレクトリ/.ssh』配下の『authorized_keys』ファイルを任意の名前にリネームします(ここでは『authorized_keys.1』とします)。
リネーム出来たらログアウトします。

再度SSHログインしようとするとエラーで失敗します。
その際は次のように表示されます。

[RLoginの場合]

[PuTTYの場合]

ユーザーデータ入力

ここから、再びSSHログイン出来るようにします。
まず、EC2インスタンスを停止します。


PuTTYGenで鍵ファイルを読み込みます(下図)。

『OpenSSHのauthorized_keysファイルにペーストするための公開鍵』欄に表示される文字列(公開鍵)を控えておきます。但し、末尾のコメント『imported-openssh-key』は不要です。

EC2インスタンスの『ユーザーデータの表示/変更』を選択します。


ユーザーデータに下記内容を入力します。[公開鍵]の部分に先程控えた公開鍵を入力します。


EC2インスタンスを開始します。

SSHログイン確認

再度SSHログインを試みると、成功することが確認出来ます。

参考リンク

「Server refused our key」のエラーが発生した場合、Amazon EC2インスタンスにどのようにログインできますか?
https://aws.amazon.com/jp/premiumsupport/knowledge-center/ec2-server-refused-our-key/?nc1=h_ls
Configure ssh and ssh keys
http://cloudinit.readthedocs.io/en/latest/topics/modules.html#ssh

おわりに

以上、EC2インスタンスへのSSH接続における、鍵が拒否されるエラーの解決法を検証しました。
この方法はcloud-initのインストールと設定が前提(Amazon Linux AMIにはインストール及び設定済み)となりますので、cloud-initについても今後勉強していく必要を感じました。

最後までご覧頂きありがとうございました。