scp -r /Applications/XAMPP/htdocs/keypairfile.pem uploads ec2-user@publicdns:/var/www/html
uploadsはディレクトリであり、Permission denied(publickey)を返します。
しかしながら
scp -i /Applications/XAMPP/htdocs/keypairfile.pem footer.php ec2-user@publicdns:/var/www/html
動作します(フラグの変更に注意してください)。
アップロードは空のフォルダーです
これらは、アップロードディレクトリのファイルアクセス許可です。
drwxrwxrwx 3 geoffreysangston admin 102 Nov 15 01:40 uploads
これらは/ var/www/htmlのファイル許可です
drwxr-x--- 2 ec2-user ec2-user 4096 Jan 5 20:45 html
Htmlを777に変更しようとしましたが、どちらも機能しません。
-i
フラグは、使用する秘密キー(.pemファイル)を指定します。 (最初のコマンドのように)そのフラグを指定しない場合、デフォルトのsshキー(通常は~/.ssh/
の下)が使用されます。
したがって、最初のコマンドでは、scp
にデフォルトのsshキーを使用して.pemファイル自体をアップロードするように実際に要求しています。私はそれがあなたが望んでいるとは思わない。
代わりに試してください:
scp -r -i /Applications/XAMPP/htdocs/keypairfile.pem uploads/* ec2-user@publicdns:/var/www/html/uploads
上記のソリューションが機能しない場合でも、aws ec2インスタンスの宛先ファイルへのアクセス許可を確認してください。 Sudo chmod 777 -R destinationFolder/*
で試すことができます
ローカルホストからリモートホストへのファイルの転送
scp -i(キーのパス)(転送するファイルのパス)(username @ ip):(コピーするファイルのパス)
e.g scp -i aws.pem /home/user1/Desktop/testFile ec2-user@someipAddress:/home/ec2-user/
追伸-このIPアドレスのec2-user @ someipAddressは、私の場合は/ home/ec2-user /の宛先フォルダーにアクセスする必要があります。
ファイル/Applications/XAMPP/htdocs/keypairfile.pem
をec2-user@publicdns:/var/www/html
にアップロードする場合は、次のようにします。
scp -Cr /Applications/XAMPP/htdocs/keypairfile.pem/uploads/ ec2-user@publicdns:/var/www/html/
どこ:
-C
-データを圧縮する-r
-再帰的