워드프레스 플러그인 비활성화 방법 (SSH 이용)

사건의 발단: 구글 OTP 증발

워드프레스 보안을 위해 Wordfence 플러그인의 2FA(2단계 인증)를 설정해 뒀다.

로그인할 때마다 Google OTP(Authenticator) 앱의 코드를 입력해야 하는데, 문제는 스마트폰을 초기화하면서 발생했다.

OTP 백업(내보내기)을 깜빡하고 폰을 밀어버린 것.

구글 OTP는 서버가 아닌 로컬 기기에 저장되는 방식이라, 백업 없이 초기화하면 복구할 방법이 없다. 결국 내 블로그인데 내가 로그인을 못 하는 상황이 발생했다.

해결 방법: 플러그인 물리적 비활성화

관리자 페이지에 접근할 수 없으니 플러그인 설정을 끌 수가 없다.

하지만 서버단에서 플러그인 폴더의 이름을 바꿔버리면, 워드프레스가 해당 플러그인을 인식하지 못해 강제로 비활성화된다는 점을 이용하기로 했다.

나스(NAS)나 리눅스 서버를 운영 중이라면 SSH로 접속해서 해결 가능하다.

1. SSH 접속

터미널을 열고 서버에 접속한다.

Bash

# ssh <계정명>@<도메인> -p <포트번호>
ssh user@vividian.net -p 22

2. 워드프레스 설치 경로 찾기

워드프레스가 설치된 폴더 위치를 정확히 안다면 이동하면 되지만, 기억나지 않는다면 find 명령어로 찾는다.

Bash

# 루트(/)에서부터 wordpress 라는 이름의 디렉토리(-type d)를 검색
sudo find / -name wordpress -type d

3. Wordfence 플러그인 폴더 이름 변경

워드프레스 플러그인은 wp-content/plugins 디렉토리 안에 모여 있다.

해당 경로로 이동한 뒤, wordfence 폴더의 이름을 wordfence.disable 처럼 다른 이름으로 변경한다.

Bash

# 플러그인 디렉토리로 이동
cd /.../wordpress/wp-content/plugins

# wordfence 폴더를 wordfence.disable로 이름 변경 (비활성화 효과)
sudo mv wordfence wordfence.disable

4. 접속 확인 및 복구

이제 웹브라우저에서 워드프레스 관리자 페이지(wp-admin)에 접속해 본다.

Wordfence 플러그인을 찾을 수 없다는 에러 메시지가 뜨면서 2FA 인증 과정 없이 로그인이 될 것이다.

로그인에 성공했다면 후속 조치를 한다.

  1. 다시 SSH에서 폴더 이름을 원상복구 한다. (mv wordfence.disable wordfence)

  2. 워드프레스 관리자 메뉴 $\rightarrow$ 플러그인 $\rightarrow$ Wordfence 활성화.

  3. Wordfence 설정 $\rightarrow$ Login Security $\rightarrow$ 2FA 재설정(새로운 폰 등록).

다음부터는 폰 초기화 전에 꼭 OTP 백업부터 챙겨야겠다.