Macで.pemを使ってAmazon EC2インスタンスへSSH接続する方法

最近Amazon EC2に「○○.pem」ファイル(キーペア)を使ってSSH接続する必要があったので、接続手順を備忘録として残しておきます。
キーペア(.pemファイル)
EC2では、インスタンス作成時にキーペアと呼ばれる接続に必要なファイルを作成します。
作成したキーペアは紛失すると再発行ができなくてログインできなくなるので、扱いには注意が必要です。
「○○.pem」の形式でファイルとしてダウンロードされます。
キーペアの配置
ダウンロードしたキーペアを「~/.ssh/keys」にコピーします。
コピーはターミナルで「cp [コピー元のパス] [コピー先のパス]」のコマンドを実行すればコピーできます。
$ cp ~/Downloads/○○.pem ~/.ssh/keys次にコピーしたファイルの権限設定を行います。
デフォルトだと「644」に設定されているようですが、キーペアは権限が多く付与されすぎているのもよくないみたいです。
とりあえず「600」に変更します。
$ chmod 600 ~/.ssh/keys/○○.pemSSHログイン
キーペアの配置ができたら、sshコマンドを使って接続します。
コマンドは「ssh [ユーザー]@[IP] -i [キーファイルの指定]」の形式で実行します。
ユーザーはデフォルトだと「ec2-user」で、IPはインスタンスの「説明」タブ内にある「IPv4 パブリック IP」を入力します。
$ ssh ec2-user@XX.XX.XX.XX -i ~/.ssh/keys/○○.pemこれで無事に接続できました。
キーペアを無くしてしまうと、インスタンスごと作り直す必要があるみたいなので注意が必要です。
「.ssh」配下にしかない状態だと、Macが壊れた場合などに取り返しのつかないことになります。
コピー元のファイルをどこかに保管しておくようにしましょう。


様々な作業を自動化するgulpの基礎と導入方法
SourceTreeのカスタムアクションを使って差分ファイルだけをまとめる方法
Nuxt.jsでページを作成・追加する方法|Nuxt.jsの基本
ブラウザでこれ以上スクロールできない場合の挙動を制御する「overscroll-behavior」プロパティ
Nuxt.jsの基本と最初のセットアップ「プロジェクトの作成と起動をするまでの流れ」
JavaScriptで配列内から特定条件の要素を探す方法
gulpでSSI(サーバーサイドインクルード)を使用する「connect-ssi」
SafariでFacebookのPage Pluginに「リクエストを処理できませんでした」とダイアログが表示される問題
Local by Flywheelの「Starting Local Machine…」画面から進まないときに試すこと
Neovimを使い始める最初の一歩として便利な「LazyVim」
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
AirPodsで片耳を外しても再生が止まらないようにする方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
1Passwordの開発者向け機能(SSH Agent / Environments / 1Password CLI / Developer Watchtower)
Default Folder Xで保存ダイアログ内のファイルリストにフォーカスする方法
Obsidianで整理した知識をAnkiで定着させる方法
Figma × Keyboard Maestroでどこまで効率化できる?
マウス操作の完成度が高いウインドウリサイズアプリ「Magnet」
Macで複数ディスプレイを使っている場合に便利な設定集
AppCleanerでMacアプリを関連ファイルごと完全に削除する
操作に没頭できる!Firefox版 Arcのようなブラウザ「Zen Browser」
chezmoi(シェモア)で始めるdotfiles管理
GitHubの通知を見逃さない!通知に特化したアプリ「Gitify」