If you run a website on a cPanel hosting account at AEserver, you have access to a powerful tool that most hosting customers never use: SSH access. SSH lets you connect directly to your server through an encrypted command line, run scripts, manage files at scale, deploy code from Git, and do dozens of other things that would be slow or impossible through the cPanel web interface.
This guide walks you through everything you need: what SSH access is, which AEserver plans support it, how to generate SSH keys on Mac, Linux, and Windows, how to authorize them in cPanel, and how to connect for the first time. All commands are ready to copy-paste.
ssh username@yourdomain.com from your Mac, Linux, or Windows terminal.
SSH (Secure Shell) is an encrypted network protocol that lets you log into a remote server over the internet and execute commands as if you were sitting at the server itself. Everything between your computer and the server is encrypted, so even on public Wi-Fi nobody can read your commands or passwords.
SSH access in a hosting context means your hosting provider gives you a username, a hostname, and a port that you can use to connect to the server with an SSH client. Once connected, you get a Linux command line where you can run shell commands, edit files, manage databases, and do anything else permitted by your hosting plan’s shell type.
The reference implementation of SSH used by virtually every Linux server (including AEserver’s) is OpenSSH, the open-source suite developed by the OpenBSD Project.
SSH is not just a developer toy. Real use cases that matter for UAE businesses running on AEserver include:
mv or rsync, compared to hours through cPanel File Manager.mysqldump, way past the timeout limits of phpMyAdmin.If your business runs on a WooCommerce store, a custom PHP application, or any setup that needs more control than a simple WordPress blog, SSH is the bridge between hobbyist hosting and professional infrastructure.
SSH is supported on every AEserver hosting product. The shell type and access level differ slightly between plan tiers.
| Plan Type | SSH Access | Access Level |
|---|---|---|
| Linux Hosting (cPanel) | Included | Jailed shell, your home directory only |
| WordPress Hosting | Included (SSH and SFTP) | Jailed shell within your WordPress account |
| Managed WordPress | Included (SSH and SFTP) | Jailed shell with WP-CLI pre-installed |
| Cloud VPS in Dubai | Full root SSH | Complete server control |
| Dedicated Servers in Dubai | Full root SSH | Complete server control |
PORT as a placeholder, replace it with the actual port shown in your cPanel.
Before you generate any keys, find the four pieces of information you need to connect. All of them are inside cPanel.
Log in to your AEserver cPanel account. From the home page, scroll to the Security section and click SSH Access. (If you are new to cPanel itself, our complete guide to cPanel hosting covers the layout in detail.)
Your cPanel username (visible in the top-right corner of cPanel) is also your SSH username. Your hostname is your domain name or the server hostname provided in your hosting welcome email. Note these down. You will also need the SSH port, which is shown on the SSH Access page or in your welcome email.
The four values you need to write down:
aeuser01)example.ae) or server hostname22)SSH keys are a pair of files: a private key that stays on your computer and a public key you upload to the server. They replace passwords with cryptographic authentication, which is more secure and easier to automate.
You can generate keys two ways: directly inside cPanel, or on your local computer. Generating them locally is the safer and more flexible approach because the private key never leaves your machine. We will cover both, but we recommend generating locally.
Pick the section below that matches your operating system.
Open the Terminal app from Applications > Utilities > Terminal, or press Command + Space and type Terminal.
Type the following command and press Enter:
ssh-keygen -t ed25519 -C "your_email@example.com"
The -t ed25519 flag selects the modern Ed25519 algorithm, which is faster and more secure than older RSA keys. Replace your_email@example.com with your real email address (this is just a label).
When asked where to save the key, press Enter to accept the default ~/.ssh/id_ed25519.
Enter file in which to save the key (/Users/yourname/.ssh/id_ed25519):
Enter a strong passphrase when prompted, and confirm it. The passphrase encrypts the private key on disk. You can press Enter twice for no passphrase, but a passphrase is strongly recommended.
Display the public key with this command:
cat ~/.ssh/id_ed25519.pub
The output starts with ssh-ed25519 and ends with your email comment. Select all of it and copy to clipboard. You will paste this into cPanel in Part 3.
The process on Linux is identical to macOS because both use OpenSSH. Open a terminal (Ctrl + Alt + T on most distributions) and follow the macOS steps above. The commands are the same:
ssh-keygen -t ed25519 -C "your_email@example.com" cat ~/.ssh/id_ed25519.pub
Windows 10 (build 1809 and later) and Windows 11 ship with OpenSSH built in. According to Microsoft’s official OpenSSH documentation, you can use the same commands as macOS and Linux from PowerShell or Windows Terminal.
Press Windows + X and select Windows Terminal or PowerShell. On Windows 10, search for PowerShell in the Start menu.
Check that OpenSSH is installed:
ssh -V
You should see something like OpenSSH_for_Windows_8.6p1. If you get an error, install OpenSSH from Settings > Apps > Optional Features > Add a feature > OpenSSH Client.
ssh-keygen -t ed25519 -C "your_email@example.com"
Press Enter to accept the default save location, which on Windows is C:\Users\YourName\.ssh\id_ed25519. Set a passphrase when prompted.
Display the public key:
type $env:USERPROFILE\.ssh\id_ed25519.pub
Copy the entire output (starts with ssh-ed25519).
If you cannot generate keys locally for any reason, cPanel can do it for you. The downside: cPanel keeps a copy of the private key on the server temporarily, which is slightly less secure.
From cPanel, go to Security > SSH Access, then click Manage SSH Keys.
You will see two buttons: Generate a New Key and Import Key. Click Generate a New Key.
Set a key name (or leave the default id_rsa), enter a strong passphrase, choose key type RSA with size 4096 bits, then click Generate Key.
Go back to the Manage SSH Keys page. Under Private Keys, click View/Download next to your key. Download the file to a safe location on your computer (typically your ~/.ssh/ folder on Mac/Linux). Once downloaded, delete the private key from the server through the same interface.
Generating the key is half the work. To use it, you must authorize the public key in cPanel.
If you generated keys on your computer in Part 2 Method 1, you need to upload the public key to cPanel. Go to Security > SSH Access > Manage SSH Keys > Import Key. Paste the contents of your id_ed25519.pub file into the Public Key text box, leave the Private Key field blank, and click Import.
On the Manage SSH Keys page, find your key under Public Keys. In the Authorization Status column it should show not authorized. Click Manage, then click Authorize. The status changes to authorized.
~/.ssh/authorized_keys file on the server. This file is the list of keys allowed to log in. Without authorization, the server will reject the key and ask for your password instead.
You now have an authorized key. Time to connect.
Open Terminal and run:
ssh -p PORT username@yourdomain.com
Replace PORT with your actual SSH port, username with your cPanel username, and yourdomain.com with your domain or server hostname. For example:
ssh -p 22 aeuser01@example.ae
The first time you connect, you will see a fingerprint warning:
The authenticity of host 'example.ae' can't be established. ED25519 key fingerprint is SHA256:... Are you sure you want to continue connecting (yes/no)?
Type yes and press Enter. The fingerprint is saved to ~/.ssh/known_hosts so you will not see this prompt again. If your key has a passphrase, enter it when asked. You should see a Linux prompt like:
aeuser01@server.aeserver.com [~]$
You are now connected to your server.
Open PowerShell or Windows Terminal and run the same command as on Mac/Linux:
ssh -p PORT username@yourdomain.com
Windows OpenSSH automatically reads keys from C:\Users\YourName\.ssh\, so if you generated id_ed25519 there it will be used.
Launch PuTTY. The configuration window appears.
In Host Name (or IP address), type your server hostname (for example, example.ae). In Port, enter your SSH port. Make sure SSH is selected as Connection type.
In the left panel, navigate to Connection > SSH > Auth > Credentials. Under Private key file for authentication, click Browse and select your .ppk private key file.
If you generated your private key in OpenSSH format (Mac/Linux/Windows OpenSSH), you must convert it to PuTTY’s PPK format using PuTTYgen: open PuTTYgen, click Load, select your private key, then Save private key as a .ppk file.
Click Open. Accept the security alert on first connection. Enter your username when prompted, then your key passphrase. You are connected.
Once connected, here are the most useful commands for managing a hosting account.
List files in current directory, including hidden files:
ls -lah
Change directory:
cd public_html
Show your current location:
pwd
Create a directory:
mkdir new-folder
Delete a file:
rm filename.txt
Delete a directory and all contents (use with caution):
rm -rf foldername
Copy a file:
cp source.txt destination.txt
Move or rename a file:
mv oldname.txt newname.txt
Compress a folder into a tar.gz archive:
tar -czvf backup.tar.gz public_html/
Extract a tar.gz archive:
tar -xzvf backup.tar.gz
Create a ZIP archive:
zip -r backup.zip public_html/
Extract a ZIP archive:
unzip backup.zip
Export a database to a SQL file:
mysqldump -u DB_USER -p DB_NAME > backup.sql
Import a SQL file into a database:
mysql -u DB_USER -p DB_NAME < backup.sql
Replace DB_USER and DB_NAME with your actual database username and name. You will be prompted for the password.
If WP-CLI is installed (default on AEserver Managed WordPress), navigate to your WordPress directory first:
cd public_html
List all installed plugins:
wp plugin list
Update all plugins:
wp plugin update --all
Update WordPress core:
wp core update
Search and replace in the database (useful when migrating domains):
wp search-replace 'oldsite.ae' 'newsite.ae' --dry-run
Remove the --dry-run flag to apply changes.
Check disk usage of your account:
du -sh ~
Check available disk space:
df -h
See running processes:
top
Press q to exit top.
SSH is secure by design but only as secure as your habits. WordPress security data from Patchstack’s State of WordPress Security 2026 whitepaper shows that compromised credentials and unmanaged keys remain a leading attack vector. Follow these practices to keep your SSH access safe.
authorized_keys./etc/ssh/sshd_config and set PasswordAuthentication no. This stops every brute-force attack instantly.fail2ban on VPS and Dedicated. It bans IPs after repeated failed login attempts.authorized_keys file. Run cat ~/.ssh/authorized_keys occasionally and remove keys you no longer recognize.SSH hardening is one piece of a larger picture. For the broader server-side and application-side checklist, see our guide on website security best practices.
You see: ssh: connect to host example.ae port 22: Connection refused
Cause: wrong port number, or SSH not enabled. Verify the port in cPanel under SSH Access. If the port is correct, SSH may not be enabled on your account, contact AEserver support.
You see: Permission denied (publickey)
Cause: your public key is not authorized in cPanel, or you are using the wrong private key. Solutions:
chmod 600 ~/.ssh/id_ed25519 on Mac/Linux.ssh -i ~/.ssh/id_ed25519 -p PORT username@yourdomain.com
You see: ssh: connect to host example.ae port 22: Connection timed out
Cause: firewall blocking the connection or wrong hostname. Check from another network or test with:
ping yourdomain.com
If ping works but SSH does not, your local firewall or ISP might be blocking the SSH port.
You see: WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
Cause: server SSH host key changed (server reinstalled or migrated). If you trust the change, remove the old fingerprint:
ssh-keygen -R yourdomain.com
Then connect again and accept the new fingerprint.
You see: no matching host key type found. Their offer: ssh-rsa
Cause: newer OpenSSH (8.8+) deprecates older RSA signatures. Add this to ~/.ssh/config:
Host yourdomain.com HostKeyAlgorithms +ssh-rsa PubkeyAcceptedAlgorithms +ssh-rsa
Yes. SSH access is included on every AEserver hosting plan at no extra cost.
No. A basic blog or business site runs fine without SSH. You will benefit from SSH if you do regular plugin maintenance, large database operations, Git deployments, or run a high-traffic WooCommerce store.
SSH gives you a command-line shell on the server. SFTP (SSH File Transfer Protocol) uses the same SSH connection but only for file transfer, similar to FTP but encrypted. Both work on the same SSH port. SFTP clients include FileZilla, Cyberduck, and WinSCP.
Yes. You can authorize as many public keys as you want in cPanel under Manage SSH Keys. Each authorized key can log in independently. This is how teams share access without sharing a single key.
Jailed shell (used on shared and WordPress hosting) restricts you to your own home directory and a limited set of commands. Root SSH (on VPS and Dedicated) gives you full administrative control over the entire server. Most websites only need jailed shell.
Ed25519 is the modern recommendation: faster, more secure, smaller files. Use RSA 4096-bit only if you connect to old systems that do not support Ed25519. Both are supported by AEserver.
You cannot recover the passphrase. Generate a new key pair and authorize the new public key in cPanel, then remove the old key from authorized keys.
Yes. Termius (iOS and Android), JuiceSSH (Android), and Blink Shell (iOS) are popular SSH clients for mobile. Useful for emergency server access on the go.
Yes. SSH works on every standard internet connection in the UAE, including Etisalat, du, and most public Wi-Fi networks. The connection is encrypted end to end, so the network operator cannot see your commands or data.
Remove all authorized public keys from cPanel under Manage SSH Keys. To fully disable shell access on a shared cPanel account, contact AEserver support.
ssh-keygen -t ed25519 on Mac, Linux, or Windows. Generating locally is more secure than letting cPanel create them.ssh -p PORT username@yourdomain.com. The port is shown in your cPanel SSH Access page.SSH access transforms your AEserver hosting from a simple website host into a flexible Linux platform. Once you have keys set up and tested a connection, you have a tool that saves hours of time on repetitive tasks and unlocks integrations like Git, WP-CLI, and automated backups.
If you hit a problem during setup, AEserver’s UAE-based support team is available 24/7 through chat or by ticket from the client portal. For VPS and Dedicated server users who want the highest level of control, root SSH is included by default, see the Cloud VPS and Dedicated Servers pages for full specs and pricing.