web-dev-qa-db-ja.com

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

私は自分のMac端末を使ってDownloads(私がオンラインでダウンロードしたphpMyAdmin)から自分のAmazon EC2インスタンスへファイルをscpしようとしています。

私が使用したコマンドは次のとおりです。

scp -i myAmazonKey.pem phpMyAdmin-3.4.5-all-languages.tar.gz  [email protected]:~/.

取得したエラー:警告: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  [email protected]:~/.

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

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

pS同様の投稿があります: パスワードなしでec2インスタンスへのscp(安全なコピー) しかしそれは私の質問に答えていません。

172
HoKy22

ユーザーをec2-userに指定してみてください。

scp -i myAmazonKey.pem phpMyAdmin-3.4.5-all-languages.tar.gz [email protected]:~/.

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

336
W.P. McNeill

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

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

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

27
Syed Priom

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

chmod 400 yourPublicKeyFile.pem
17
Castelmager

あなたは上記のscpコマンドを試すためにあなたのローカルマシンにいるべきです。

あなたのローカルマシンで試してみてください。

scp -i ~/Downloads/myAmazonKey.pem ~/Downloads/phpMyAdmin-3.4.5-all-languages.tar.gz  [email protected]:~/.
11
DV Dasari

これは、EC2インスタンスに有効なものの詳細です。

scp -i /path/to/whatever.pem /users/me/path-to-file [email protected]:~

はじめにいくつかのメモ:

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

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

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

この部分を終えたら、sshサーバーとmvファイルを希望の場所に入れます。

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

ローカルからサーバーにファイルを送信します。

scp -i .ssh/awsinstance.pem my_local_file [email protected]:/ home/ubuntu

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

scp -i .ssh/awsinstance.pem [email protected]:/ home/ubuntu/server_file。

2
Viraj.Hadoop

以下のSCPフォーマットは私のために働きます

scp -i /path/my-key-pair.pem [email protected]:~/SampleFile.txt ~/SampleFile2.txt

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

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

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

scp -i /path/my-key-pair.pem [email protected]:~/../../var/www/Filename.Zip ~/Downloads
2
Vatsal Shah

.pemファイルのアクセス権を確認してください... opensshは通常、世界で読める秘密鍵を好まず、失敗するでしょう(iir、scpはユーザーにこのフィードバックを提供する素晴らしい仕事をしません)。

そのキーを使ってAWSホストにSSH接続するだけでいいのですか。

0
Bryan Stenson

まず、.pemファイルのモードを読み取りおよび書き込みモードから読み取り専用モードに変更する必要があります。これは端末Sudo chmod 400 your_public_key.pem内の単一のコマンドで実行できます。

0
Shravan40

SCPを使用してローカルマシンからAWS EC2 Linuxインスタンスにファイルをコピーするプロセスは、 this video で段階的に説明されています(以下の点も含みます)。

SCPを使用してこの特定の問題を解決するには

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

    • 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

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

0
Marie D.