なぜやったか なぜ書いたか
勉強で進めていた"Amazon Web Services基礎からのネットワーク&サーバー構築"の中でEC2インスタンスに対してSSHする項目があり、本書ではRloginを使用していたが新しくインストールするのは面倒なので、既に使用しているWindowsTerminalで進めることは出来ないか調べた。
WindowsTerminalは雰囲気で使っていたが、今回のEC2インスタンスへのsshをやってみたら思っていた以上に便利じゃんとなったので備忘録として記述。
便宜上、鍵ファイルをhogehoge.pemとして記述します。
方法
EC2インスタンス作成からインスタンスにssh接続するまで
EC2インスタンスを作成し、作成したインスタンスを選択した状態で右上の「接続」をクリックする。
「インスタンスに接続」ページに移るので、「SSHクライアント」タブをクリック。
インスタンスにsshする方法が記述してあるが(下記画像)、画像の項目3にあるchmod 400 "hogehoge.pem"
はWindows環境では出来ません。
なので下記コマンドを実行して秘密鍵ファイルの読み取り権限を修正します
# hogehoge.pemの権限をリセット
icacls.exe <hogehoge.pemのフルパス> /reset
# 操作しているユーザーに読み取り権限を付与
icacls.exe <hogehoge.pemのフルパス> /GRANT:R "$($env:USERNAME):(R)"
# 親フォルダーから継承されたアクセス権限の削除
icacls.exe <hogehoge.pemのフルパス> /inheritance:r
コマンド入力後、hogehoge.pemが存在するディレクトリに移動してWindowsTerminalを開き、上記画像最下部にあるsshコマンドを叩く。EC2インスタンスに登録できることを確認する。
WindowsTerminalからsshするm
WindowsTerminalを開いて、タブエリアのプルダウンから設定を開く。
設定からJsonファイルを開き、"profiles"の"list"に下記を追加する。commandline項目の内容は適宜エスケープして下さい。
"list":
[
~~~~~~~~~略~~~~~~~~~
{
"commandline": "<ec2インスタンスへのsshコマンド(hogehoge.pemはフルパスで記述)>",
"hidden": false,
"name": "sample-aws"
}
~~~~~~~~~略~~~~~~~~~
WindowsTerminalのタブエリアのプルダウンから選べるようになっていることと、実際にEC2インスタンスにsshできることを確認する。
便利だ!