質問: ### 前提・実現したいこと AWSにEC2インスタンスを作成しました。 構築したWordPressもドメインでアクセスするとブラウザ表示できており、機能はしています。 こちらにローカルのファイル(products.js)をアップロードしたいです。 ``` $scp -i <ローカルファイルのパス> ec2-user@:<送信先のパス> ``` に従ってターミナルから以下のコマンドを実行しました。 Apatche配下に置こうと思い、/var/www/hrmlを送信先のパスにしています。 ``` [ホームディレクトリ]$ scp -i ~/Desktop/●●●.pem ~/Desktop/Vue/products.js ec2-user@01.23.456.789:/var/www/html ``` しかしエラーメッセージが出てうまくいきません。 ### 発生している問題・エラーメッセージ ``` scp: /var/www/html/products.js: Permission denied ``` [ホームディレクトリ]$ scp -i ... と、ホームディレクトリで実行していることが誤っているのかと、 sshでEC2に接続したのち、 [ec2-user@ip-●●● ~]$ scp -i ...を実行したところ以下のエラーが出ました。 ``` Warning: Identity file /home/ec2-user/Desktop/●●●.pem not accessible: No such file or directory. The authenticity of host '01.23.456.789 (01.23.456.789)' can't be established. ECDSA key fingerprint is *****************. ECDSA key fingerprint is *****************. Are you sure you want to continue connecting (yes/no)? (***の部分は英数字と記号。) ``` 何が誤っているのでしょうか? ご回答お願いいたします。 ### 補足情報(FW/ツールのバージョンなど) mac/terminal使用。
回答: 転送方法は最初の方法であっています。 `scp: /var/www/html/products.js: Permission denied` というのは `ec2-user` には `/var/www/html/` に書き込む権限が無いよ、ということです。 ※ `ec2-user` 権限なのは scp で ec2-user@ としているから。 どういう permission なら良いかというのは、色々悩ましいですが、、、 非常にやっつけでやるならば、 ``` # ec2上で sudo chmod 777 /var/www/html # もし /var/www/html/products.js が既に存在しているなら以下のようにする sudo chmod 777 /var/www/html/products.js ``` とかしてしまうことです。 ※ 本来なら他のファイルの owner や permission にあわせて置くほうが良いと思います。