scpを使用してファイルをAmazon EC2インスタンスにコピーしますか?


198

Macターミナルを使用して、ダウンロード(オンラインでダウンロードしたphpMyAdmin)からAmazon EC2インスタンスにファイルをscpしようとしています。

私が使用したコマンドは:

scp -i myAmazonKey.pem phpMyAdmin-3.4.5-all-languages.tar.gz  hk22@mec2-50-17-16-67.compute-1.amazonaws.com:~/.

私が得たエラー: 警告:IDファイルmyAmazonKey.pemにアクセスできません:そのようなファイルまたはディレクトリはありません。権限が拒否されました(公開鍵)。接続が切れました

myAmazonkey.pemとphpMyAdmin-3.4.5-all-languages.tar.gzの両方がダウンロードに含まれているので、試してみました

scp -i /Users/Hello_Kitty22/Downloads/myAmazonKey.pem /Users/Hello_Kitty22/Downloads/phpMyAdmin-3.4.5-all-languages.tar.gz  hk22@mec2-50-17-16-67.compute-1.amazonaws.com:~/.

そして私が得たエラー: 警告:Identityファイル/User/Hello_Kitty22/Downloads/myAmazonkey.pemにアクセスできません:そのようなファイルまたはディレクトリはありません。権限が拒否されました(公開鍵)。接続が切れました

誰でも私の問題を解決する方法を教えてもらえますか?

PS同様の投稿があります:パスワードなしのec2インスタンスへのscp(セキュアコピー)です が、私の質問には回答しません。


Amazonインスタンスをオンラインで起動すると、ダウンロードのローカルファイルにアクセスできなくなったようです
HoKy22

回答:


375

ec2-userたとえば、ユーザーを指定してみてください

scp -i myAmazonKey.pem phpMyAdmin-3.4.5-all-languages.tar.gz ec2-user@mec2-50-17-16-67.compute-1.amazonaws.com:~/.

SSHを使用したLinux / UNIXインスタンスへの接続を参照してください。


16
よく働く。ubuntuインスタンスを実行している場合、ユーザーのデフォルトユーザーは「ubuntu」である場合があります。
RussellStewart 2013年

もちろん、/へのコピーは機能しない可能性があります。啓発してくれてありがとう!
dnuske 2014年

@DanielDropik冗談を言っているのかどうかはわかりませんが... :/フォルダーをシステムのルートにコピーしようとすると、sudoを実行せずに(またはルートとして)すべてのマシンで権限エラーが発生します。
Dobz 14

「root」ではなく「ubuntu」でログインしてください。コピーのために何をする必要があるか
アルジュン

私の場合、ユーザーを使用していましたが、違いは、ドメイン名の代わりにパブリックDNS mec2-50-17-16-67.compute-1.amazonaws.comを追加することです
shareef

31

2番目のディレクトリはターゲットの宛先です。そこでサーバー名を使用しないでください。つまり、現在使用しているマシンのマシン名を言及する必要はありません。

scp -i /path/to/your/.pemkey -r /copy/from/path user@server:/copy/to/path

-rディレクトリの場合。


19

SSHが機能するためには、鍵が公開されてはなりません。必要に応じてこのコマンドを使用します。

chmod 400 yourPublicKeyFile.pem

あなたは私の日兄弟を救った
Mayukh Sarkar

13

上記のscpコマンドを試すには、ローカルマシンにいる必要があります。

ローカルマシンで試してください:

scp -i ~/Downloads/myAmazonKey.pem ~/Downloads/phpMyAdmin-3.4.5-all-languages.tar.gz  hk22@mec2-50-17-16-67.compute-1.amazonaws.com:~/.

9

EC2インスタンスで機能するものの詳細は次のとおりです。

scp -i /path/to/whatever.pem /users/me/path-to-file ec2-user@ec2-55-55-555-555.compute-1.amazonaws.com:~

はじめに注意点:

  1. 後に指定された3つのパラメーター間のスペースに注意してください。 -i
  2. scpセキュアコピープロトコルの略です。単語を知ると、コマンドを覚えやすくなります。
  3. -i.pemファイルを次のパラメータとして指定する必要があることを示します。ない場合は-i、必要ありません.pem
  4. :~EC2インスタンスの宛先の末尾にあることに注意してください。

6

私はまったく同じ問題を抱えていました、私の解決策は

scp -i /path/pem -r /path/file/ ec2-user@public aws dns name: (ここは空白のままにします)

この部分を実行したら、sshサーバーとmvファイルを目的の場所に移動します


5
scp -i ~/path to pem file/file.pem -r(for directory) /PATH OF LOCAL/localfile user@hostname:PATH OF SERVER/serverdirectory

3

SCPフォーマットの下で私のために働く

scp -i /path/my-key-pair.pem ec2-user@ec2-198-51-100-1.compute-1.amazonaws.com:~/SampleFile.txt ~/SampleFile2.txt

SampleFile.txt:ルートディレクトリからのパスになります(私の場合は/ home / ubuntu)。私の場合、ダウンロードしたいファイルは/ var / wwwにありました

SampleFile2.txt:マシンのルートパスのパスになります(私の場合は/ home / MyPCUserName)

だから、以下のコマンドを書く必要があります

scp -i /path/my-key-pair.pem ec2-user@ec2-198-51-100-1.compute-1.amazonaws.com:~/../../var/www/Filename.zip ~/Downloads

2

ローカルからサーバーにファイルを送信:

scp -i .ssh / awsinstance.pem my_local_file ubuntu@XX.XXX.XXX.XXX:/ home / ubuntu

サーバーからローカルにファイルをダウンロード:

scp -i .ssh / awsinstance.pem ubuntu@XX.XXX.XXX.XXX:/ home / ubuntu / server_file。


1

SCPを使用してローカルマシンからAWS EC2 Linuxインスタンスにファイルをコピーするプロセスは、このビデオで段階的に(下記のポイントを含む)カバーされています。

SCPの使用に関するこの特定の問題を修正するには:

  1. 正しいLinuxユーザーを指定する必要があります。アマゾンから:

    • Amazon Linuxの場合、ユーザー名はec2-userです。
    • RHELの場合、ユーザー名はec2-userまたはrootです。
    • Ubuntuの場合、ユーザー名はubuntuまたはrootです。
    • Centosの場合、ユーザー名はcentosです。
    • Fedoraの場合、ユーザー名はec2-userです。
    • SUSEの場合、ユーザー名はec2-userまたはrootです。
    • それ以外の場合、ec2-userおよびrootが機能しない場合は、AMIプロバイダーに確認してください。
  2. 秘密鍵は公開してはいけません。rootユーザーのみがファイルを読み取ることができるように、次のコマンドを実行します。

    chmod 400 /path/to/yourKeyFile.pem
    

0

.pemファイルの権限を確認してください... opensshは通常、誰でも読み取り可能な秘密鍵を好まないため失敗します(つまり、scpはこのフィードバックをユーザーに提供する優れた機能を果たしていません)。

AWSホストへのそのキーで単純にsshできますか?


はい、そのキーを使用してAWSホストにSSH接続できます。実際、私が抱えている問題は、(sshを介して)Amazonホストにいるため、cdを実行すると、Amazonサーバー上のファイルのみが表示され、pemファイルを保存したローカルのMacダウンロードディレクトリは表示されません。ec2ホストを終了するときに、ローカルのMacダウンロードディレクトリにのみcdできます。しかし、ec2ホストに戻ると、phpMyAdminファイルをec2サーバーにアップロードできませんでした。私のペムの許可は400です。
HoKy22

2
助けてくれてありがとう、私はあなたが尋ねた最後の質問で私の問題を見つけました。sshかscpのどちらかで、2つを一緒にすることはできないようです。
HoKy22、2012

ヒントhellokitty22をありがとう。私は2つのターミナルを開いていて、1つはssh用、もう1つはscp用です。
donebizkit

0

最初に、.pemファイルのモードを読み取りおよび書き込みモードから読み取り専用モードに変更する必要があります。これは、ターミナルで単一のコマンドを実行するだけで実行できますsudo chmod 400 your_public_key.pem


0

上記の提案をすべて試しましたが、何もうまくいきませんでした。現在のインスタンスを終了し、別のインスタンスを起動して、まったく同じプロセスを繰り返しました。今回は問題ありません。時々、それはリモートamiのせいかもしれません。


0

これでうまくいきました。この質問には、他の2つの回答を組み合わせて使用​​しました。

scp -i /Users/me/documents/myKP.pem -r /Users/me/desktop/testDir \
       ec2-user@ec2-11-111-11-11.compute-1.amazonaws.com:/home/ec2-user/remoteDir

「ec2-user@ec2-11-111-11-11.compute-1.amazonaws.com」は、ec2インスタンスのパブリックDNSからコピーアンドペーストされます。


-1

私は使うだろう:

scp -i "path to .pem file" "file to be copeide from local machine" username@amazoninstance: 'destination folder to copy file on remote machine'

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.