AWSの認証鍵をWindowsのAWS CLIで生成した際に、SSHアクセスしようとした際のエラーへの対処
2021/12/14
AWSへのアクセスキーをWindows上のaws cliで生成した際に起こる問題への対処。生成した鍵がそのままだと改行コードの問題があり不正なキーとして扱われる。これをWindowsの改行からUNIXの改行へ変換することで正常な鍵として認識する。編集エディターでterapadなんかだとコード変換を行う機能があるのでこれをやると正常な鍵として認識する。あとUNIXライクなツールでdos2unixを使うのもおすすめ。今回はdos2unixを入れて対処する方法を紹介します。実はこの問題はもう一つアクセス権の問題を抱えている。それも解説します。
問題となるSSH実行時のエラー
1 2 3 |
PS C:\Users\abcd> ssh -i "TestKeyPair.pem" ec2-user@xx.221.137.216 Load key "TestKeyPair.pem": invalid format ec2-user@xx.221.137.216: Permission denied (publickey,gssapi-keyex,gssapi-with-mic). |
鍵ファイルのアクセス権を利用ユーザに限定する。
つまり余計なユーザ(ピンクで囲ったユーザ)があると制限がかかるようだ。権限を開放するユーザを利用者だけに限定すれば問題ない。鍵の上でマウス右クリックでプロパティを表示させよう。
後は「詳細設定ボタン」を押して「継承の無効化」を実施してから余計なユーザを削除すると問題ない。
dos2unixをインストール
1 2 |
事前にパッケージャーchocoをインストールしておきましょうね。chocoからdos2unixをインストールします。 PS C:\Users\abcd> choco install dos2unix |
dos2unixで鍵の改行をUNIX形式の改行へ変換
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
まず最初に改行コードの変換。 PS C:\Users\abcd> dos2unix .\TestKeyPair.pem dos2unix: converting UTF-16LE file ./TestKeyPair.pem to UTF-8 Unix format... 再度、接続を試みます。今度は成功しましたね! PS C:\Users\abcd> ssh -i TestKeyPair.pem ec2-user@xx.221.137.216 ============================================================================= __| __|_ ) _| ( / Deep Learning AMI GPU PyTorch 1.10.0 (Amazon Linux 2) ___|\___|___| ============================================================================= * To activate pre-built pytorch environment, run: 'source activate pytorch' * To activate base conda environment upon login, run: 'conda config --set auto_activate_base true' * NVIDIA driver version: 470.57.02 * CUDA version: 11.3 AWS Deep Learning AMI Homepage: https://aws.amazon.com/machine-learning/amis/ Release Notes: https://docs.aws.amazon.com/dlami/latest/devguide/appendix-ami-release-notes.html Support: https://forums.aws.amazon.com/forum.jspa?forumID=263 For a fully managed experience, check out Amazon SageMaker at https://aws.amazon.com/sagemaker Security scan reports for python packages are located at: /opt/aws/dlami/info/ ============================================================================= 11 package(s) needed for security, out of 27 available Run "sudo yum update" to apply all updates. |