##scpコマンドとは?
scpコマンドはファイルやフォルダをSSHで暗号化しながら転送できるのことコマンドです。
##ダウンロード前に行うこと
###公開鍵(authorized_keys)の設置
公開鍵認証する場合、EC2で作成した公開鍵と秘密鍵のペア(拡張子は.pem)を公開鍵を接続ユーザのホームディレクトリ下~/.ssh/ に設置する必要があります。
###Permissionの設定
公開鍵認証する場合、以下のようにPermissionを適切に設定する必要があります。
きちんと設定していないとscpコマンドの実行時にPermission Errorが発生します。
chmod 600 キーの名前.pem
これで事前準備は完了です。
##ダウンロード方法
###ローカルファイルをEC2へダウンロード
まずは、ローカルファイルをEC2上へダウンロードする方法を見ていきましょう。
$ cd .ssh/
$ scp -i [秘密鍵] [転送するファイルのパス] [EC2ユーザー名]@[パブリックIP]:[EC2上のコピー先のパス]
となります。
具体例は以下のようになります。
$ cd .ssh/
$ scp -i hello-key.pem ~/hello.html ec2-user@[パブリックIP]:/home/ec2-user
###ローカルフォルダをEC2へダウンロード
次に、ローカルフォルダをEC2へダウンロードする方法です。
ローカルフォルダの場合、-iの前に−rをつけることでダウンロードすることができます。
$ cd .ssh/
$ scp -r -i [秘密鍵] [転送するフォルダのパス] [EC2ユーザー名]@[パブリックIP]:[EC2上のコピー先のパス]
具体例は以下のようになります。
$ cd .ssh/
$ scp -r -i hello-key.pem ~/hellodir ec2-user@[パブリックIP]:/home/ec2-user
###EC2のファイルをローカルへダウンロード
次に、EC2のファイルをローカルへダウンロードする方法です。
最後にローカルの転送先フォルダのパスを指定します。
$ cd .ssh/
$ scp -i [秘密鍵] [EC2ユーザー名]@[パブリックIP]:[EC2上の転送するファイルのパス] [ローカルの転送先フォルダのパス]
具体例は以下のようになります。
$ cd .ssh/
$ scp -i hello-key.pem ec2-user@[パブリックIP]:/home/ec2-user/hello.html /Users/home/
###EC2のフォルダをローカルへダウンロード
最後に、EC2のフォルダをローカルへダウンロードする方法です。
-rをつける位置に注意しましょう。
$ cd .ssh/
$ scp -i [秘密鍵] -r [EC2ユーザー名]@[パブリックIP]:[EC2上の転送するファイルのパス] [ローカルの転送先フォルダのパス]
具体例は以下のようになります。
$ cd .ssh/
$ scp -i hello-key.pem ec2-user@[パブリックIP]:/home/ec2-user/hello.html /Users/home/
##最後に
実行できたら、ターミナル上でダウンロードが開始されます。
ダウンロードが完了したら、sshコマンドを使い、EC2上へダウンロードをできているか確認しましょう。
ssh -i [秘密鍵] [EC2ユーザー名]@[パブリックIP]
上記のコマンドを実行することでログインできます。