ec2-user ユーザーでAmimotoで作成したインスタンスに(S)FTPクライアントソフトで接続するには?

SFTP クライアントソフトを使用してAmimotoでインスタンスに接続するには SFTP 接続が可能なアプリケーション(クライアントソフト)インスタンスにひも付いた秘密鍵(.pem)が必要です。

ec2-user でもインスタンスへの接続は可能ですが、WordPress のファイルが置かれたディレクトリ /var/www/vhosts は Web サーバの実行ユーザ nginx が所有者となっており、SFTP クライアント等で直接ファイルをアップロードする事はできません。

今回はnginx, php-fpm の実行ユーザを ec2-user に変更し、ec2-user ユーザでもファイルのアップロードなどの操作をできるようにする方法をご紹介します。

1. nginx, php-fpm の実行ユーザを ec2-user にする(インスタンス作成後1回のみ)

まず、/opt/local/amimoto.json というファイルを開いて内容を以下のように書き換えます

{
"nginx" : { "config" : { "user" : "ec2-user" } },
"php" : { "config" : { "user" : "ec2-user" } },
"run_list" : [ "recipe[amimoto]" ]
}

HHVM版Amimotoの場合は、以下のように書き換えます

{
"nginx" : { "config" : { "user" : "ec2-user" } },
"php" : { "config" : { "user" : "ec2-user" } },
"hhvm" : { "enabled" : true, "config" : { "user" : "ec2-user" } },
"run_list" : [ "recipe[amimoto]" ]
}

次に root 権限で /opt/local/provision を実行します

$ sudo /opt/local/provision

完了後、/var/www/vhosts を ec2-user ユーザでも操作できるように所有者を変更します。

$sudo chown -R ec2-user:nginx /var/www/vhosts

2. (S)FTPクライアントソフトで接続する

接続サーバーなどの設定は

  • サーバ:インスタンスのIPアドレス
  • ユーザ名:ec2-user
  • 秘密鍵
  • パス:/var/www/vhosts/{インスタンス名(任意)}
  • 接続方法(ポート):SFTP(22)

となります。

SFTP 接続が可能なクライアントソフトの一例として

があげられます。

一例ですが、Cyberduckの場合は下記写真を参照にサーバ情報を入力し「公開鍵認証を使用する」にチェックを入れると秘密鍵(.pem)を選択できます。
amimoto-ssh-sample