🙋

EC2インスタンスにSSH接続する 

に公開

書籍「Amazon web service 基礎からのネットワーク&サーバー構築」3章の2でEC2インスタンスにSSH接続しようとした際の備忘録です。

ターミナルから次の接続コマンドを入力。

$ ssh -i 〇〇.pem ec2-user@パブリックIP

(-i:ログインに使用する秘密鍵ファイルを指定する。)
うまく接続ができない。

Permission denied (publickey,gssapi-keyex,gssapi-with-mic).

原因はキーペアファイルのパスが誤っていました。
Documents下にファイルを置いていたので下記にコマンドを修正。

$ ssh -i Documents/〇〇.pem ec2-user@パブリックIP

解決したかと思いましたが下記の別のエラーが発生。

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for 'Documents/〇〇.pem' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "Documents/〇〇.pem": bad permissions
ec2-user@IPアドレス: Permission denied (publickey,gssapi-keyex,gssapi-with-mic).

キーペアファイルのパーミッションが他のユーザーも閲覧できる状態になっていることが原因でした。
そこで下記のchmodコマンドを実行したところ無事に解決しました。

$ chmod 400 Documents/〇〇.pem

(400の4は読み込み属性しかついていないことを示す)

Discussion