WordPress

WordPressのプラグインなどのインストール・更新をSSHでやる方法

WordPressのプラグインなどのインストール・更新をSSHでやる方法
目次
  1. SSH2ライブラリをインストール
  2. SSHの鍵を作成
  3. wp-config.phpに追記
  4. 上手くいかない?

WordPressの為にFTPサーバーを導入している人も多いと思います。普段はSSH(WinSCP)でファイルのやり取りしているのに、プラグインなどの更新の為にFTPサーバーを導入していた・・・なんて良くあります。FTPはセキュリティ的にも使いたくないんだけどね~。と、内心思いつつも・・・。

2026年11月時点の補足

記事は 2014年(PHP 5)の手順です。今の Debian でも SSH2 の拡張は入れられます。2026年11月5日に Debian 13 の候補の版を確かめました。

$ apt-cache policy php-ssh2 | grep Candidate
  Candidate: 1.4.1-4
項目この記事(2014年)2026年11月時点
SSH2 の拡張libssh2-phpphp-ssh2 1.4.1
wp-config.php の FS_METHOD'ssh2'同じ('ssh2')
いちばん手軽な更新方法管理画面から SSH 経由WP-CLI(wp plugin update --all)
$ wp core update
$ wp plugin update --all
$ wp theme update --all
方法ファイルの所有者向いている場面
FS_METHOD directWeb サーバー(www-data)1人で管理する小さなサイト
FS_METHOD ssh2SSH のユーザーファイルを Web サーバーに書かせたくない
WP-CLIコマンドを打つユーザーcron で自動化する・複数サイトをまとめて

そんなあなたも、今日でFTPとはおさらばです!

今回の方法は、FTPのパスワード情報を入力しなくても、SSH鍵(秘密鍵・公開鍵)を使ってプラグインなどをインストール・更新をするので、「いますぐインストール」を押すだけで、すぐにインストールされ作業がすごく楽になります!

鍵は非公開領域のサーバー内に置くので、手元のパソコンに持っておく必要が無く、無くしてしまう心配もありません。

SSH2ライブラリをインストール

PHPでSSH2を使えるようにするた為、libssh2-phpをインストールします。

// インストール
# apt-get install libssh2-php

// php5-fpmにSSH2の設定を反映
# /etc/init.d/php5-fpm reload

SSHの鍵を作成

今回は、新しくディレクトリ「.wpssh」を作ります。通常のままだと、「.ssh」に鍵が保存されますが、通常のSSH鍵とWordPress鍵が混在しないように分けます。
※ 秘密鍵:id_rsa、公開鍵:id_rsa.pub

// WordPressを管理しているユーザーに変更
# su hoge

// 鍵を保存するディレクトリ作成(※必ず非公開領域か確認を)
$ mkdir ~/.wpssh/

// 鍵作成(※パスワードはなし!)
$ ssh-keygen -t rsa -f ~/.wpssh/id_rsa

// ~/.ssh/が無ければ作成(自動作成されてる場合あり。)
$ mkdir ~/.ssh/

// 公開鍵を登録する
$ cat ~/.wpssh/id_rsa.pub >> ~/.ssh/authorized_keys

// rootに戻る
$ exit

// パーミッション変更
# chmod -R go-rwx /home/hoge/.wpssh/

// 所有者変更(hoge → www-data)
# chown -R www-data:www-data /home/hoge/.wpssh/

wp-config.phpに追記

WordPressの設定ファイルに追記します。
FTP_HOSTは、localhostのままでOKです。

// SSH 設定
define('FS_METHOD', 'ssh2');
define('FTP_PUBKEY', '/home/hoge/.wpssh/id_rsa.pub');
define('FTP_PRIKEY', '/home/hoge/.wpssh/id_rsa');
define('FTP_USER', 'hoge');
define('FTP_HOST', 'localhost');

これでFTPの入力画面とはおさらばです!

これで何も入力せずにプラグインの「いますぐインストール」をクリックすると、「プラグインを有効化」の画面に直行です!FPT情報の入力の手間が省けて、セキュリティも向上しました!

上手くいかない?

こんなエラーが出たら・・・
wordpress-ssh_1

「2.SSHの鍵を作成」をもう一度見直してください。
鍵はWEBサーバーを動かしているユーザー(www-data)がアクセス出来るようにする必要があります。

wordpress-ssh_2
libssh2-phpをインストールした後、php5-fpm の再起動を忘れてませんか?

wordpress-ssh_3
残念ながら、私にも解決方法がわかりません。通常のFTP方式に戻せば更新できると思います。