SCPでAWS EC2インスタンスとファイルを送受信する

SCPコマンドを用いて、EC2インスタンスとファイルを送受信する方法です。

EC2インスタンスの証明書を用いて送受信を行います。まだ証明書を作成していない場合、こちらを参考に証明書を作成して下さい。

送信
$scp -i <証明書.pemのパス> <送信するファイルのパス> ec2-user@<ホスト名>:<送信先ディレクトリ>

具体例。

$scp -i ~/.ssh/key.pem ~/foo.zip ec2-user@ec2-xx-xxx-xx-xx.ap-northeast-1.compute.amazonaws.com:~/

上記のコマンドで、ローカルマシンのホームディレクトリのfoo.zipファイルを、リモートマシンec2-xx-xxx-xx-xx.ap-northeast-1.compute.amazonaws.comのユーザーec2-userのホームディレクトリにコピーします。

受信
$scp -i <証明書.pemのパス> ec2-user@<ホスト名>:<ファイルのパス> <受信先ディレクトリ>

具体例。

$scp -i ~/.ssh/key.pem ec2-user@ec2-xx-xxx-xx-xx.ap-northeast-1.compute.amazonaws.com:~/bar.txt ~/

上記のコマンドでリモートマシンec2-xx-xxx-xx-xx.ap-northeast-1.compute.amazonaws.comのユーザーec2-userのホームディレクトリのbar.txtファイルを、ローカルマシンのホームディクトリへコピーします。

もっと楽に送受信したい

こちらで示したように接続設定ファイルを作成すると、楽にファイルの送受信が行えます。

送信
$scp <ファイル> <ホスト設定名>:<送信先ディレクトリ>

具体例。

scp ~/foo.zip aws:~/
受信
$scp <ホスト設定名>:<ファイルのパス> <受信先ディレクトリ>

具体例。

#scp aws:~/bar.txt ~/

楽ちん!