아마존 EC2에 워드프레스를 설치했다. ec2 인스턴스에 ssh 연결을 위해 아마존에서 제공하는 .pem 키페어 파일을 사용한다. 콘솔 작업뿐만 아니라 워드프레스 관리자 페이지에서 플러그인 등 업데이트를 할때도 SSH 프로토콜을 지원한다. 그러나 관리자 화면에는 .pem파일이 아니라 .pub 파일도 사용한다. 찾아보니 .pem 파일을 .pub 파일로 변경해 주는 방법이 있다. (참고)

그러나 아마존에서 EC2 인스턴스 생성시 자동으로 만들어진 파일을 덮어쓰지 않도록 조심해야한다. EC2 인스턴스를 처음 만들때 ~/.ssh/uthorized_keys 파일이 생성되는데 이것을 실수로 덮어쓰면 SSH로 EC2에 연결하지 못할수도 있다. (해결: Start a Debug Linux Instance)

키파일 설정

먼저 로컬에 저장된 .pem 키페어 파일을 ec2 인스턴스에 업로드 한다. ~/.ssh/aws.pem 경로로 저장하자. 그럼 이것이 private key가 된다. ssh-keygen 명령어로 public key를 만들자. ssh-keygen -y -f aws.pem > aws.pub 이 파일들을 경로를 워드프레스 관리자 콘솔에 입력하면 플러그인 업데이트를 진행할 수 있다.

앞으로 계속 사용 할 것이라면 wp-config.php에 상수값으로 설정해두는 것이 편리하다.

define('FTP_PUBKEY', '/home/wordpress/.ssh/aws.pub');
define('FTP_PRIKEY', '/home/wordpress/.ssh/aws.pem');
define('FTP_USER', 'wordpress');
define('FTP_PASS', '');
define('FTP_HOST’, 'localhost');

문제해결

여전히 ssh를 통한 플러그인 설치가 진행되지 않을 경우가 발생할 수 있다. 서버에 설치한 워드프레스 경로의 폴더 권한을 확인해야 한다. 소유자가 www-data가 아닐경우 변경한다.

sudo chown -R www-data:www-data /var/www

참고