WP Engine’s SSH is Happening

Over the last few months I’ve had privilege to be part of WP Engine’s SSH alpha/beta. SSH access is a big deal for WP Engine and for the entire managed WordPress hosting ecosystem. It’s currently under limited beta, however I do hope it’s released publicly soon.

Using WP Engine’s SSH is similar to other SSH access

You start by adding public keys to their user portal. Next locate your unique SSH login per install: https://my.wpengine.com/installs/{install_name} and your ready to connect.

WP Engine’s SSH works through intermediate servers

They don’t allow direct access to the web server and use an intermediate server for an extra layer of security. It’s best to connect to the closest intermediate server. All of my WP Engine servers are US based and connecting to the US central intermediate server has been great.

During their alpha phase I did run into some performance issues due to this extra security layer. I’ve been impressed with the SSH team as they’ve been prompt to fix every issue I’ve reported. Now that I’ve been using SSH daily for nearly 3 months I can say from personal experience that their current version is quite stable.

Each SSH connection allows direct access to one install

The format of the SSH connection looks something like {email address}+{WP Install Name}@{WP Install Name}.ssh.wpengine.net. Since this format is standard I created sshwpe.sh, which allows quick access to any WP Engine installations.

#!/bin/bash

#
#   WP Engine SSH wrapper
#
#   Connects to individual install over SSH
#   sshwpe.sh anchorhost
#
#   Runs command over SSH
#   sshwpe.sh anchorhost "wp plugins list"
#

wpe_ssh_user=change-me@anchor.host

if [ -n "$2" ]; then
  ssh -oStrictHostKeyChecking=no $wpe_ssh_user+$1@$1.ssh.wpengine.net "cd sites/* && $2"
else
  ssh -oStrictHostKeyChecking=no $wpe_ssh_user+$1@$1.ssh.wpengine.net
fi