Shell access (SSH) is typically enabled by default on VPS and dedicated servers, but it can be disabled per account or package. On shared hosting, providers often disable it by default for security reasons and may require a support ticket to enable it.
If you receive an error like “Shell access is not enabled on your account!” when trying to connect via SSH, you can enable it through WebHost Manager (WHM) as the root user (or a reseller with appropriate permissions).
Prerequisites
- Root (or reseller) access to WHM.
- The server must support SSH (standard on VPS/dedicated; shared hosting may have restrictions).
- Basic understanding that enabling SSH grants command-line access—use strong security practices (e.g., SSH keys instead of passwords where possible).
Security Note: Granting shell access increases the attack surface. Consider using jailed shell (limited environment) for non-root users and prefer key-based authentication over passwords.
Enable Shell Access for Specific Accounts
- Log in to your WHM interface.
- In the left sidebar search box, type “Manage Shell Access” and select the result under Account Functions (or navigate to Home → Account Functions → Manage Shell Access).
- You will see a list of all cPanel accounts on the server. Locate the desired account (by username or domain). Choose the appropriate shell option:– Normal Shell: Full shell access.
– Jailed Shell: Restricted (jailed) environment for improved security (recommended for most users).
– Disabled: No shell access. - Click Save or apply the change. The update is usually instant.
Enable Shell Access via Packages (for Multiple Accounts)
To apply SSH access to all accounts using a specific package:
- In WHM, go to Home → Packages → Edit a Package.
- Select the package you want to modify.
- Scroll to the Shell Access option and check the box to enable it.
- Save the changes.
- For existing accounts on that package, you may also need to update them individually via Manage Shell Access or re-assign the package.
Another option for bulk/feature control is Feature Manager (Home → Packages → Feature Manager). Ensure the SSH Access or related features are enabled in the feature list assigned to accounts.
For Root SSH Access
- Root SSH is usually enabled by default on fresh cPanel servers.
- If disabled, check Security Center → SSH Password Authorization Tweak or edit
/etc/ssh/sshd_config(setPermitRootLoginappropriately) and restart SSH. - You can also manage root SSH keys via Security Center → Manage root’s SSH Keys.
After Enabling SSH
- Test the connection from your local terminal or client (e.g.,
ssh username@server-ipor using PuTTY). - If using password authentication, ensure it’s allowed in SSH config (not recommended long-term).
- For better security, generate and authorize SSH keys:– In the target cPanel account: Go to Security → SSH Access → Manage SSH Keys.
– Generate a new key, download the private key, and authorize the public key.
– Then connect using the private key.
Common Issues and Tips
- No “Account Functions” visible? Ensure you are logged in as root. Resellers may have limited views. Try switching to the “Classic” theme if the interface looks different.
- Changes not applying? Clear browser cache, check the account’s package settings, or verify no firewall is blocking port 22.
- Shared hosting: Contact support to enable SSH if not already enabled. Some plans may restrict this access.
- Interface names and paths can vary slightly with cPanel/WHM versions. Use the search bar in WHM for the fastest navigation.
Enabling SSH gives you powerful command-line control for tasks like file management, permissions, and server maintenance. Always follow security best practices, such as disabling password login and using keys.


Leave a Reply