[AWS EC2] scpでファイルをアップロード/ダウンロードする方法 [SSH]

Linux

AWS EC2のサーバーにscpでファイルをアップロード/ダウンロードする方法について説明します。

この記事の対象の読者
  • scpでファイルをアップロード/ダウンロードできない。
  • Permission deniedというエラーが発生する。

ファイルをアップロードする手順

1画面左下の検索欄にcmdと入力してコマンドプロンプトを起動します。現在いるディレクトリがC:\Users\user\だと仮定します。

2AWSからダウンロードしたec2key.pemの絶対パスを確認します。ここでは、C:\Users\user\.ssh\ec2key.pemとします。

3アップロードしたいファイルの絶対パスを確認します。ここではD:\data\test.txtとします。

4アップロードするディレクトリを/home/awsuser/とします。コマンドを以下のように入力し、実行します。
「scp -i 秘密鍵のパス アップロードするファイルのパス ユーザー名@ホスト名:アップロード先のディレクトリのパス」という書き方になります。

scp -i C:\Users\user\.ssh\ec2key.pem D:\data\test.txt awsuser@ec2-xx-xx-xx-xx.compute-1.amazonaws.com:/home/awsuser/
エラーが出る場合は、わかりやすくするために、秘密鍵とアップロードしたいファイルをC:\Users\user\に移動させて、以下のようにコマンドを入力して実行してください。
scp -i ec2key.pem test.txt awsuser@ec2-xx-xx-xx-xx.compute-1.amazonaws.com:/home/awsuser/

フォルダごとアップロードするには、以下のように-rオプションを付け加えます。

scp -i C:\Users\user\.ssh\ec2key.pem -r D:\data\testfolder awsuser@ec2-xx-xx-xx-xx.compute-1.amazonaws.com:/home/awsuser/

5以下のように表示されたらアップロード成功です。

test.text 100% 3 0.0KB/s 00:00

ファイルをダウンロードする手順

1画面左下の検索欄にcmdと入力してコマンドプロンプトを起動します。現在いるディレクトリがC:\Users\user\だと仮定して、説明を続けます。

2AWSからダウンロードしたec2key.pemの絶対パスを確認します。ここでは、C:\Users\user\.ssh\ec2key.pemとします。

3ダウンロードしたいファイルのパスを確認します。ここでは/home/awsuser/とします。

4現在いるディレクトリ(C:\Users\user\)にダウンロードします。コマンドを以下のように入力し、実行します。
「scp -i 秘密鍵のパス ユーザー名@ホスト名:ダウンロードするファイルのパス ファイルを保存するディレクトリのパス」という書き方になります。

scp -i C:\Users\user\.ssh\ec2key.pem awsuser@ec2-xx-xx-xx-xx.compute-1.amazonaws.com:/home/awsuser/test.txt ./
エラーが出る場合は、わかりやすくするために、秘密鍵をC:\Users\usernameに移動させて、以下のようにコマンドを入力して実行してください。
scp -i ec2key.pem awsuser@ec2-xx-xx-xx-xx.compute-1.amazonaws.com:/home/awsuser/test.txt ./

また、保存先のディレクトリを/にすると”Permission denied”というエラーが発生します。./にしてください。

フォルダごとダウンロードするには、以下のように-rオプションを付け加えます。

scp -i C:\Users\user\.ssh\ec2key.pem -r awsuser@ec2-xx-xx-xx-xx.compute-1.amazonaws.com:/home/awsuser/testfolder ./

5以下のように表示されたらダウンロード成功です。C:\Users\user\にダウンロードしたファイルがあるはずです。

test.text 100% 3 0.0KB/s 00:00

余談

AWS EC2の1年間の無料期間がそろそろ終わるのですが、最初の1ヶ月くらい触っただけで、ずっと放置してました。インスタンスを停止するだけだと料金が発生し続けて、インスタンスを終了するとデータが消えるらしいので、一旦、サーバーからファイルをダウンロードすることにしました。今回は、その方法について調べたことを記事にまとめました。参考になれば幸いです。

広告