2012-07-09 13 views
125

私はAmazon EC2インスタンスにDownload(phpMyAdminをオンラインでダウンロード)のファイルをscpするためにMac Terminalを使用しようとしています。私が使用しscpを使用してファイルをAmazon EC2インスタンスにコピーしますか?

コマンドは:

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

エラー私が得た: 警告:アイデンティティはアクセスできませんmyAmazonKey.pemファイル:いいえそのようなファイルやディレクトリを。 許可が拒否されました(publickey)。 : は

私myAmazonkey.pemとphpMyAdminの-3.4.5-すべて-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]:~/. 

と私が得たエラーを試してみましたが、ダウンロードしている接続を失いました警告:IDファイル/User/Hello_Kitty22/Downloads/myAmazonkey.pemにアクセスできません:そのようなファイルまたはディレクトリはありません。 許可が拒否されました(publickey)。 接続が切断されました

誰でも問題の解決方法を教えてください。

p.s.同様の投稿があります:scp (secure copy) to ec2 instance without password ですが、私の質問には答えません。

+0

Amazonインスタンスをオンラインで起動すると、ダウンロードで自分のローカルファイルにアクセスできなくなってしまいます。 – HoKy22

答えて

255

は、例えば、ec2-userするユーザーを指定してください

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

Connecting to Linux/UNIX Instances Using SSHを参照してください。

+0

ありがとう、たくさんの作品:) – ilight

+8

素晴らしいです。 ubuntuインスタンスを実行している場合、ユーザのデフォルトユーザは "ubuntu"かもしれないことに注意してください。 – RussellStewart

+0

もちろんコピーする/動作しない可能性があります。啓発に感謝します! – dnuske

0

.pemファイルのアクセス許可をチェックする... opensshは通常、読み込み可能な秘密鍵が好きではなく、失敗します(iir、scpはこのフィードバックをユーザに提供するうえで素晴らしい仕事をしません)。

あなたはそのキーを使ってAWSホストに簡単にsshできますか?

+0

はい、私はその鍵でAWSホストにssh接続できます。実際には、問題は私がAmazonホスト(ssh経由)にいるので、cdを実行すると、自分のpemファイルを保存したローカルのMacダウンロードディレクトリではなく、Amazonサーバー上のファイルしか見ることができません。私は自分のec2ホストを終了するときに私のローカルのMacダウンロードディレクトリにcdすることができます。しかし、私がec2ホストを終了すると、phpMyAdminファイルをec2サーバーにアップロードできませんでした。 私のペムの許可は400ですが、それは問題ないと思います。 – HoKy22

+1

ご協力いただきありがとうございます。ご質問いただいた最後のご質問で問題が見つかりました。私はsshでもscpでも、2人ではありません。ヒントhellokitty22のために – HoKy22

+0

ありがとう。私は、sshとscp用に2つの端末を開いていました。 – donebizkit

8

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

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

:ローカルマシンの試行で

scp -i "path to .pem file" "file to be copeide from local machine" [email protected]: 'destination folder to copy file on remote machine'

+2

これはまさに彼らが試みたと言ったものです。 –

15

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

scp -i /path/to/your/.pemkey -r /copy/from/path [email protected]:/copy/to/path 

-rディレクトリの場合はそれを指定します。

13

SSHが動作するには、あなたの鍵を一般公開することはできません。必要に応じて、次のコマンドを使用します。

chmod 400 yourPublicKeyFile.pem 
2
scp -i ~/path to pem file/file.pem -r(for directory) /PATH OF LOCAL/localfile [email protected]:PATH OF SERVER/serverdirectory 
0

まずあなたが読むから.pemファイルのモードを変更して、読み取り専用モードにモードを記述する必要があります。あなたはこの部分をやったら、これはちょうど私は正確に同じ問題を抱えていたターミナルsudo chmod 400 your_public_key.pem

4

で単一のコマンドで行うことができ、私の解決策は

scp -i /path/pem -r /path/file/ [email protected] aws dns name:にしたSSHに入る、

を(ここでは空白のまま)サーバーとmvファイルを目的の場所にコピーします

0

私は上記のすべての提案を試してみましたが、何も機能しませんでした。私は現在のインスタンスを終了し、別のインスタンスを立ち上げ、同じ正確なプロセスを繰り返しました。今回は問題ありません。時にはそれは遠隔のamiのせいかもしれません。

0

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 
    
1

EC2例えばどのような作品の詳細は以下のとおりです。初めのため

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

ほとんどのノート:

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