2012年5月3日木曜日

Amazon EC2にローカルからファイルを転送

ホームページからファイルをダウンロード出来るようにしたかったので、
ファイルをアップしようと思ったら意外と手間取ったのでメモ。

・とりあえずcyberduckでは転送できなかった
-Username
ec
ec2-user
-Result
Permission denied (SSH_FX_PERMISSION_DENIED: The user does not have sufficient permissions to perform the operation.).

-Username
root
-Result
Peer sent DISCONNECT message (reason code 2): Change of username or service not allowed: (ec,ssh-connection) -> (root,ssh-connection)

ひょっとしたら、usernameを適切に変更すればそれで行けたりするのかもしれないがひとまず、この方法は断念。

・ファイル元の問題
EC2のルートからだと、
cpもscpも: No such file or directoryと出てしまう
[root@test ec2-user]# cp local@Users/tester/uploadtest.txt /var/www/html
cp: cannot stat `local@Users/tester/uploadtest.txt': No such file or directory

他に方法があるのかもしれないが、とりあえずEC2にログインした状態だとファイル元へ行けないので、
ローカルから、EC2へのアクセスを試みる
bash-3.2# scp /Users/tester/uploadtest.txt ec2-user@1.1.1.1:var/www/html
Permission denied (publickey).
lost connection

パーミッションがdenyされたので、keyを付けてみる
bash-3.2# scp -i key.pem /Users/tester/uploadtest.txt ec2-user@1.1.1.1:/tmp/
uploadtest.txt 100% 4 0.0KB/s 00:00

bash-3.2# scp -i key.pem /Users/tester/uploadtest.txt ec2-user@1.1.1.1:/var/www/html/
scp: /var/www/html//uploadtest.txt: Permission denied

tmpだと上手くいくが、htmlへの直接転送はdenied

一旦tmpにアップして、EC2にログインした状態でコピーする

[root@test ec2-user]# cp /tmp/uploadtest.txt /var/www/html/uploadtest.txt

これで完了。
結局ディレクトリのpermissionの問題ぽかったけど、まあ出来たらから良し。

1 件のコメント: