私は自分の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(安全なコピー) しかしそれは私の質問に答えていません。
ユーザーをec2-user
に指定してみてください。
scp -i myAmazonKey.pem phpMyAdmin-3.4.5-all-languages.tar.gz [email protected]:~/.
SSHを使用したLinux/UNIXインスタンスへの接続 を参照してください。
2番目のディレクトリはターゲットの宛先です。そこにはサーバー名を使用しないでください。言い換えれば、あなたが現在いるマシンのマシン名を言及する必要はありません。
scp -i /path/to/your/.pemkey -r /copy/from/path user@server:/copy/to/path
ディレクトリの場合は-r。
SSHが機能するためには、あなたの鍵が一般に公開されてはいけません。必要に応じてこのコマンドを使用してください。
chmod 400 yourPublicKeyFile.pem
あなたは上記のscpコマンドを試すためにあなたのローカルマシンにいるべきです。
あなたのローカルマシンで試してみてください。
scp -i ~/Downloads/myAmazonKey.pem ~/Downloads/phpMyAdmin-3.4.5-all-languages.tar.gz [email protected]:~/.
これは、EC2インスタンスに有効なものの詳細です。
scp -i /path/to/whatever.pem /users/me/path-to-file [email protected]:~
はじめにいくつかのメモ:
-i
の後に与えられた3つのパラメータの間のスペースに注意してくださいscp
はセキュアコピープロトコルを表します。言葉を知っていると、コマンドを覚えやすくなります。-i
は、.pem
ファイルを次のパラメータとして指定する必要があることを示しています。 -i
がない場合は、.pem
は必要ありません。:~
に注意してください。私は全く同じ問題を抱えていた、私の解決策は
scp -i /path/pem -r /path/file/ ec2-user@public aws dns name:
(ここは空白のままにします)
この部分を終えたら、sshサーバーとmvファイルを希望の場所に入れます。
scp -i ~/path to pem file/file.pem -r(for directory) /PATH OF LOCAL/localfile user@hostname:PATH OF SERVER/serverdirectory
ローカルからサーバーにファイルを送信します。
scp -i .ssh/awsinstance.pem my_local_file [email protected]:/ home/ubuntu
サーバーからローカルにファイルをダウンロードする:
scp -i .ssh/awsinstance.pem [email protected]:/ home/ubuntu/server_file。
以下の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
.pemファイルのアクセス権を確認してください... opensshは通常、世界で読める秘密鍵を好まず、失敗するでしょう(iir、scpはユーザーにこのフィードバックを提供する素晴らしい仕事をしません)。
そのキーを使ってAWSホストにSSH接続するだけでいいのですか。
まず、.pem
ファイルのモードを読み取りおよび書き込みモードから読み取り専用モードに変更する必要があります。これは端末Sudo chmod 400 your_public_key.pem
内の単一のコマンドで実行できます。
SCPを使用してローカルマシンからAWS EC2 Linuxインスタンスにファイルをコピーするプロセスは、 this video で段階的に説明されています(以下の点も含みます)。
SCPを使用してこの特定の問題を解決するには
正しいLinuxユーザーを指定する必要があります。 Amazon から:
あなたの秘密鍵は公開されてはいけません。次のコマンドを実行して、rootユーザーだけがファイルを読み込めるようにします。
chmod 400 /path/to/yourKeyFile.pem
私は上記のすべての提案を試しましたが、何もうまくいきませんでした。現在のインスタンスを終了し、別のインスタンスを起動して、まったく同じプロセスを繰り返しました。今回は問題ありません。リモートAMIのせいかもしれません。