WindowsからAWSのEC2インスタンスにLinuxコマンドでSSHしてみた

記事タイトルとURLをコピーする

はじめまして,2022年新卒入社の末廣満希です. 現在,業務のためのPCに会社貸与のWindows11を使用していますが,AWSのEC2インスタンスに接続するためのシンプルな方法として,「Tera Term」などのアプリケーションを使って接続する必要があります. しかし,私自身IT関係の作業を行う時は今までMacOSを使用していたため,Linuxコマンドにて接続をしたいと思い,本作業を行うことにしました.

WSLのインストールまで

WSL(Windows Subsystem for Linux) とは、Linuxのバイナリ実行ファイルをWindows上でネイティブ実行するための互換レイヤーであり,コマンドプロンプトから容易にインストールすることができます.そのためにまずWindows11上のコマンドプロンプトを管理者権限で開きます. 今回は以下のようにUbuntuをインストールします.

# WSLで利用できるLinuxディストリビューションの一覧を表示
# デフォルトのものには「*」が記載される
> wsl -l -o

# デフォルトのLinuxをインストール
> wsl --install

バージョンの確認,インストール

以上が完了するとPCの再起動が促されるので従って再起動を行います.

WSLファイルシステムに秘密鍵を移動させる

再起動が完了すると自動でWSLアプリケーションが起動し,ユーザ名とパスワードを入力し,Ubuntuとしてコマンド入力が可能になりました. 「ssh」コマンドが既に使える状態なので,秘密鍵をWSLファイルシステムから利用できるようにします. エクスプローラーのパス欄に「\wsl$」と入れることでWindowsのファイルシステムとして扱うことができるので,これまで使用していた秘密鍵を移動させます. しかし,秘密鍵の形式が「ppk」のままだとsshできませんでした.

ファイルエクスプローラーからWSLへのアクセス

秘密鍵の形式を変更する

AWS公式ドキュメントにPuTTYgenでこれを解決できるとのことなので,試してみます. yumが入っていなかったので,PuTTYgenをインストールし,変換コマンドを入力することで, 「pem」形式の秘密鍵が手に入りました.

# PuTTYgenをインストール
$ apt-get install -y putty

# ppk形式をpem形式に変換
$ sudo puttygen ppkkey.ppk -O private-openssh -o pemkey.pem

PuTTYgenのインストール

PuTTYgenでの秘密鍵の変換

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

接続の前に変換した秘密鍵のパーミッションを変更する必要があります.もちろんLinuxコマンドで可能でした. 返還後の秘密鍵を指定し,デフォルトユーザでEC2の無事にインスタンスに接続することができました.

# 権限を変更
$ chmod .ssh/400 training-dev-keypair.pem

# インスタンスへssh接続
$ ssh -i .ssh/training-dev-keypair.pem ec2-user@54.150.166.84

EC2インスタンスへのSSH接続

終わりに

今回の作業により,LinuxコマンドでEC2インスタンスにSSH接続することができました.WSLは複窓も可能なのでポートフォワーディングでの踏み台経由のインスタンス接続も問題なくできそうです. なお,5月からは普通にMacOSを使用したいと思います.

参考文献