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