WSLを使ってEC2(Linux)へアクセスする
WindowsからEC2上のファイルを操作する際に、Poweshellからsshコマンドを叩いても作業可能なのだが、WSLの方が快適とのことで、インストールすることにした。ので、実施した作業をメモする。
インストールしたアプリのバージョン
- WSL バージョン2
- Ubuntu-20.04
- Windows Terminal Version 1.8.1444.0
WSLのインストール
以下を参考にインストールを実施。
WSLをインストールする
Windows 10でLinuxを使う
Ubuntu
Microsoft Storeからインストール可能。
WSL2
wsl_update_x64.msiのインストールを最初に行う必要がある。(https://aka.ms/wsl2kernel)
その後、WSLのバージョンアップコマンドを実行する。
PS > wsl --set-version Ubuntu-20.04 2
WSLのバージョン確認をして、以下のようVersionが2になっていればOK
PS > wsl -l -v
NAME STATE VERSION
* Ubuntu-20.04 Stopped 2
PowerShell上でwslコマンドで起動可能。初回起動時にユーザ名とパスワードの登録が必要。(rootを取る時に必要)
PS > wsl
こちらを参考にした。
WSL2を操作しようとすると「カーネル コンポーネントの更新が必要です」と表示される
WSL2がWSL1より優れている点はこちらを参照。
WSL 1 と WSL 2 の比較
GCC
後で何かと必要かもしれないので、GCCもインストールしておく(必須ではない)
WSLを起動した後、以下のコマンドを実行する。
$ sudo apt-get update
$ sudo apt install gcc
最初のaptのアップデートを実施しないと”404 Not Found”のエラーが出まくるので注意(小一時間詰まった)。
詳細は以下を参照。
Windows Subsystem for Linux(WSL)でGCCをインストールしてみた!
SSH接続
configとpemファイルを配置
/home/${USER}/.ssh
にconfigファイルと、Keyとなる.pemファイルを配置する。
configファイルの書き方は以下を参照
~/.ssh/configについて
ちなみに、C:\Users\${USER}
(WSL上では /mnt/c/Users/${USER}
) の./ssh はPowerShellやVSCodeなどで参照する。
こちらにしか/.ssh/configがないと、ssh接続しても”ssh: Could not resolve hostname …”となってしまう。
両方のconfigを同じに保ちたい場合は、cronを使って同期する。(自分はコピーだけで済ませたが)
Windowsのssh設定をWindows Subsystem for Linux(WSL)に適用する
EC2のキーのパーミッションを変更しておく
配置した.pemファイルを以下のようにパーミッション変更する。
chmod 600 xxx.pem
変更していないと、ssh接続時に以下のようなエラーが出る。
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0777 for 'xxx.pem' are too open.
sshで接続
configで指定したhost名を使用して、sshで接続する。
$ ssh (host名)
configを使用しない場合
$ ssh -i "(keyのフォルダ)/tdl-apps.pem" ユーザ名@ec2-… .ap-northeast-1.compute.amazonaws.com(←EC2のパブリックIPv4 DNS)
Windows Terminalがあるとさらに便利
複数ウィンドウでEC2にログインするケースに備えて、Windows Terminalを利用すると便利。複数タブを切り替えたり、1画面でペインを分けて作業できる。(セッションの複製もできて欲しかった。。)
Microsoft Storeからインストール可能。
Author And Source
この問題について(WSLを使ってEC2(Linux)へアクセスする), 我々は、より多くの情報をここで見つけました https://qiita.com/ybsh2891/items/0f4bebcbf5c6fdc1e793著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .