🔖
【AWS × WSL2】Windows の Ubuntu から EC2 へ ファイルをコピーする方法
はじめに
Windows 上で WSL2(Ubuntu)を使っていると、
ローカルのファイルを EC2(Ubuntu / GPU インスタンス)へ転送したい
という場面があります。
本記事では、最もシンプルで確実な方法である
scp(Secure Copy)を使ったファイル転送
についてまとめます。
前提条件
- Windows → WSL2(Ubuntu)が使える
- EC2 に SSH 接続が可能
- 秘密鍵(例:
key.pem)を~/.ssh/に配置済み - 転送したいファイルが WSL 内にある
基本の scp コマンド(IPアドレスでOK)
最も使うシンプルな形はこちらです:
scp -i ~/.ssh/key.pem ./localfile.txt ubuntu@12.34.56.78:/home/ubuntu/
各パートの意味
| 部分 | 説明 |
|---|---|
scp |
SSHでファイルをコピーするコマンド |
-i ~/.ssh/key.pem |
EC2にログインする秘密鍵 |
./localfile.txt |
転送したいローカルファイル |
ubuntu@12.34.56.78 |
EC2 のユーザー名+Public IP |
/home/ubuntu/ |
EC2 側の保存先 |
※IPアドレスで接続できます(Public DNSでも可)
ディレクトリごとコピーする場合
scp -r -i ~/.ssh/key.pem ./myproject ubuntu@12.34.56.78:/home/ubuntu/
-r をつけるとフォルダまるごと転送できます。
秘密鍵の権限エラーが出る場合
次のようなエラーが出たら:
WARNING: UNPROTECTED PRIVATE KEY FILE!
権限を修正してください:
chmod 600 ~/.ssh/key.pem
これは SSH 接続と同じルールです。
毎回 IP アドレスを書くのが面倒な場合
.ssh/config を設定すると短くできます。
vi ~/.ssh/config
Host my-ec2
HostName 12.34.56.78
User ubuntu
IdentityFile ~/.ssh/key.pem
これで:
scp ./localfile.txt my-ec2:/home/ubuntu/
と書くだけで実行できます。
まとめ
- scp は WSL2 ↔ EC2 のファイル転送に最も手軽
-
scp -i ~/.ssh/key.pem ubuntu@<IP>:の形でOK - フォルダは
scp -rでコピー - 権限エラーは
chmod 600で解決 -
.ssh/configを使うとさらに便利
GPUインスタンス(g4dn・g5など)でも手順は変わりません。
おわりに
GPU サーバーでの学習・推論や、AWS上での検証作業ではローカルから EC2 へファイルを送る機会が必ず出てきます。
scp を使えれば、「とりあえず転送したい」という場面で迷わなくなるので便利です。
本記事が参考になれば幸いです。
Discussion