🔖

【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