Some advanced tasks require key-based access to your PMPro Hosting server. PMPro Hosting offers two access levels: SFTP access for transferring files and shell access for running commands in an interactive terminal. This guide explains how to create an SSH key pair and request the level of access you need.
Do I need SSH Access?
SSH key access is optional and intended for advanced users. Most PMPro Hosting customers never need it. Your site works fully without SFTP or shell access, and you can manage it through the WordPress admin and the PMPro Hosting dashboard. Our support team can also make changes for you when requested.
PMPro Hosting offers two types of access that use an SSH key:
- SFTP access lets you transfer and manage site files. This is the default access level when Support adds your public key.
- Shell access is an opt-in interactive terminal login for PMPro Max hosting customers. It is useful when you want to run WP-CLI commands or troubleshoot directly on the server.
You may need an SSH key if you want to:
- Use SFTP or another tool that requires SSH-key authentication to transfer files.
- Use shell access to run WP-CLI, inspect logs, edit files from a terminal, or troubleshoot your site directly on the server.
- Complete a task for which our support team has specifically asked you for a public key.
If none of the above applies, you can skip this guide. If you are unsure which access level you need, contact support before creating or sending a key.
What Is SSH?
SSH (Secure Shell) is a way to securely connect to a remote server from your own computer. Instead of logging in with a username and password, SSH uses a key pair:
- A private key stays on your computer. Think of it like a house key you keep in your pocket. Never share it with anyone.
- A public key is given to the server (or to our support team). Think of it like a lock that only your private key can open. It’s safe to share.
SFTP vs. Shell Access: What’s the Difference?
| Feature | SFTP Access | Shell Access (PMPro Max Only) |
|---|---|---|
| Primary use | Transfer and manage site files. | Work with your site through an interactive terminal. |
| File access | Yes. | Yes, including the same file access available through SFTP. |
| Run commands | No. | Yes. |
| WP-CLI | No. | Yes, for your site and never as root. |
| Read site logs | No. | Yes, with read-only access to your site’s PHP, Apache, and MySQL error logs. |
With shell access, you can:
- Run WP-CLI commands from your site’s document root. For example:
wp --path=/var/www/vhosts/example.com/public plugin list
- Read your site’s PHP, Apache, and MySQL error logs.
- Edit site files directly, including
wp-config.php. Changes towp-config.phpnormally take effect within about 60 seconds; no service reload is needed.
Shell access is intentionally limited. It does not provide root access, access to another customer’s data, or access to PMPro Hosting credentials or backups.
How to Create an SSH Key Pair
The steps to create your key pair differ based on your operating system. If you use two different operating systems, you need to create a key on both systems and share both keys to our support team.
Create an SSH Key Pair on Windows (Using PuTTY)
- Download PuTTY from the official website and install it.
- Launch
puttygen.exe. - From the top menu bar, select Key and choose SSH-2 EdDSA as the key type.
- Click Generate. Move the mouse randomly inside the blank area to generate randomness.
- Once the key is generated:
- Click Save private key and save it as a
.ppkfile. Press Yes to save the key without a passphrase (a passphrase is optional). Enter your preferred name for the key. - Click Save public key and save it as a
.txtfile. Use the same name you used for the private key.
- Click Save private key and save it as a
- Open the public key
.txtfile, copy the contents, and share them with the support team. The key will be in the following format:
ssh-ed25519 AAAAC..........
Create an SSH Key Pair on macOS or Linux
- Open the Terminal application.
- macOS: Applications > Utilities > Terminal
- Linux: Open Terminal from the application menu
- Run the following command:
ssh-keygen -t ed25519 -C "your_email@example.com"
The -t ed25519 part tells the tool to use the ed25519 algorithm, which is the modern, recommended choice for SSH keys.
The -C part adds a comment to help you identify the key later. An email is conventional, but any label works (e.g., "kim-work-laptop"). It is not verified or used for authentication.
- When prompted for a file location, press Enter to accept the default. The default private key location is your user home directory:
/home/youruser/.ssh/id_ed25519
The system automatically creates the public key in the same directory:
/home/youruser/.ssh/id_ed25519.pub
- When prompted for a passphrase, you can press Enter to skip creating one. A passphrase is optional.
- Open the
.pubfile, copy the contents, and share the public key with the support team. The key will be in the following format:
ssh-ed25519 AAAAC..........
Request SFTP or Shell Access
After you create your SSH key pair, send only your public key to PMPro Support. Never send your private key.
- To request SFTP access: Ask Support to add your public key for SFTP access to your domain. SFTP is the standard access level for file transfers.
- To request shell access: PMPro Max hosting customers can ask Support to enable shell access for their domain. If you already use SFTP, you do not need to create a new key. Support can add shell access to the same public key.
Support enables shell access on your hosting server before adding the key to the shell account. If Support does not already have your public key, they will ask you to provide it.
Connect Using SFTP or Shell
Use the private key that matches the public key you provided to Support.
Connect with SFTP
Use your preferred SFTP client with these settings:
- Protocol: SFTP / SSH File Transfer Protocol
- Host: Your domain (or your server’s origin IP address if using Cloudflare)
- Port:
22 - Username:
pmpro_sftp - Authentication: Your SSH private key
Connect with Shell Access
If Support has enabled shell access, connect from a terminal using:
ssh pmpro_shell@<host>
Replace <host> with your domain or the origin IP address supplied by Support.
Keep Your Access Secure
Shell commands are logged for security purposes. Each person who needs access should use their own SSH key rather than sharing a key with another person. This lets Support track access by key and revoke one person’s access without disrupting anyone else.
If you lose a laptop or offboard a developer, contact Support to revoke that specific key. Revoking a key immediately blocks new SFTP and shell connections associated with it. If you believe a device has been compromised, tell Support so any active shell session can also be addressed.
Server Environment & Important Notes
WordPress Cron (wp-cron)
PMPro Hosting already schedules WordPress cron at the system level. You do not need to add a cron job, and shell accounts do not have permissions to manage system crons. Adding duplicate cron tasks can cause unintended behavior.
Log File Locations
For security, site logs are stored outside the public web root:
- PHP Debug Log:
/var/log/php/<site-slug>-debug.log(not accessible viawp-content/debug.log) - Web Server & Database Logs: Read-only access to Apache and MySQL error logs is available directly in the shell environment.
Get Support From Our Team of Experts
Have a question about how to use this feature? Our Support Page outlines three ways to get support.
Our Max plans include hands-on help customizing your membership site and implementing new features. Upgrade to PMPro Max now »
Last updated on September 8, 2026

