# Using SSH on Kualo hosting: a getting-started guide

> SSH (Secure Shell) gives you direct command-line access to your Kualo hosting account, making it an essential tool for running CLI utilities, debugging cron jobs, and working with developer tools that have no graphical interface.

Source: https://www.kualo.com/knowledgebase/dev-cli/using-ssh-on-kualo-hosting-a-getting-started-guide
Updated: 2026-06-08

---

SSH (Secure Shell) gives you direct command-line access to your Kualo hosting account, making it an essential tool for running CLI utilities, debugging cron jobs, and working with developer tools that have no graphical interface.

## What you need before you start

To connect over SSH you need:

- An active Kualo hosting account with SSH access enabled (see below)
- A terminal application or dedicated SSH client on your computer
- Your cPanel username and password, or an SSH key pair
- The correct SSH port for your server (contact our support team to confirm this, as we use a non-standard port)

:::info
We do not use the default SSH port 22. Contact our support team before your first connection and they will confirm the correct port for your server.
:::

## Enabling SSH access in cPanel

SSH access is not enabled by default on all accounts. To turn it on:

1. Log in to cPanel. If you are unsure how, see our guide on [how to log in to cPanel](/knowledgebase/cpanel-getting-started/how-to-login-to-cpanel).
2. Scroll to the **Security** section and click **SSH Access**.
3. Click **Manage SSH Keys** if you want to use key-based authentication (recommended - see below), or simply confirm that shell access is enabled for your account.
4. If shell access shows as disabled, [raise a support ticket](/knowledgebase/getting-started/how-to-create-a-support-ticket-in-mykualo) and ask us to enable it.

## Choosing an SSH client

We recommend using a proper, dedicated SSH client rather than the terminal emulator built into cPanel. The cPanel terminal is less reliable, can time out unexpectedly, and lacks the features you need for comfortable day-to-day use.

**On macOS**, the built-in Terminal application works well. Open it and use the `ssh` command directly - no extra software is needed. If you want a more feature-rich experience, [iTerm2](https://iterm2.com) is an excellent third-party terminal emulator for macOS with split panes, search, and extensive customisation.

**On Linux**, the built-in terminal works well. Open it and use the `ssh` command directly - no extra software is needed.

**On Windows**, good options include:

- **Windows Terminal with OpenSSH** - built into Windows 10 and 11; the simplest option if you are already comfortable with the command line
- **PuTTY** - a long-established, free SSH client with a straightforward graphical interface; download it from [putty.org](https://www.putty.org)
- **MobaXterm** - a more feature-rich option that combines SSH, SFTP file browsing, and a tabbed interface in one application; download it from [mobaxterm.mobatek.net](https://mobaxterm.mobatek.net)
- **Termius** - a cross-platform client with a clean interface, useful if you manage connections to multiple servers; download it from [termius.com](https://termius.com)

## Connecting to your account

The basic SSH command takes this form:

```bash
ssh -p PORT username@yourdomain.com
```

Replace `PORT` with the port our support team confirmed, `username` with your cPanel username, and `yourdomain.com` with your domain name or server hostname.

For example:

```bash
ssh -p 2222 myusername@example.com
```

On your first connection, your SSH client will ask you to confirm the server's host key fingerprint. Type `yes` to accept it and continue. You will then be prompted for your cPanel password.

:::tip
If you connect regularly, save the connection details in your SSH client so you do not have to type them each time. In PuTTY, use the **Saved Sessions** feature. In Terminal on macOS, you can add an entry to `~/.ssh/config` (see the SSH keys section below for an example).
:::

## Basic commands to get you started

Once you are connected, your session starts in your home directory. Here are the commands you will use most often:

```bash
# Show your current directory
pwd

# List files and folders
ls -la

# Change directory
cd public_html

# Go up one level
cd ..

# View a file
cat wp-config.php

# Edit a file with the nano editor
nano wp-config.php

# Check disk usage for the current directory
du -sh *

# Show running PHP version
php -v

# Exit the SSH session
exit
```

Your website files live in `~/public_html` for your primary domain. Addon domain files are typically in their own subdirectory under your home folder.

## Setting up SSH keys

SSH keys are a more secure and more convenient alternative to password authentication. Instead of typing a password each time, your client presents a cryptographic key that the server verifies automatically. This is particularly valuable if you manage more than one hosting account, such as a reseller managing multiple client sites, because you can reuse the same key pair across all of them.

### Generate a key pair

On macOS, Linux, or Windows with OpenSSH, run:

```bash
ssh-keygen -t ed25519 -C "your@email.com"
```

Accept the default file location (`~/.ssh/id_ed25519`) or specify your own. Set a passphrase when prompted - this protects the private key if your computer is ever compromised.

This creates two files:

- `~/.ssh/id_ed25519` - your **private key** (never share this)
- `~/.ssh/id_ed25519.pub` - your **public key** (this is what you upload to the server)

### Add the public key to cPanel

1. In cPanel, go to **Security > SSH Access > Manage SSH Keys**.
2. Click **Import Key**.
3. Give the key a name, paste the contents of your `.pub` file into the **Public Key** field, and leave the **Private Key** field empty.
4. Click **Import**.
5. Back on the key list, click **Manage** next to your new key and then **Authorise** to activate it.

### Connect using your key

```bash
ssh -p PORT -i ~/.ssh/id_ed25519 username@yourdomain.com
```

To avoid typing the port and key path every time, add a block like this to `~/.ssh/config`:

```
Host mysite
    HostName yourdomain.com
    User username
    Port PORT
    IdentityFile ~/.ssh/id_ed25519
```

You can then connect with simply:

```bash
ssh mysite
```

:::tip
If you are a reseller or if you manage several Kualo cPanel accounts, add a separate `Host` block for each one. This makes switching between accounts fast and avoids any risk of connecting to the wrong server.
:::

## What you can do over SSH

With SSH access established, you can:

- Run [Composer](/knowledgebase/dev-cli/how-to-use-composer-on-kualo-servers) to manage PHP dependencies
- Install and use [Grunt](/knowledgebase/dev-languages/how-to-install-grunt) and other build tools
- [Create and manage Node.js applications from the command line](/knowledgebase/dev-languages/creating-a-nodejs-app-via-the-command-line-advanced)
- [Monitor Redis with redis-cli](/knowledgebase/perf-caching/monitoring-redis-with-redis-cli)
- Debug cron jobs by running them manually - see our guide on [how to configure cron jobs](/knowledgebase/dev-cli/how-to-configure-cron-jobs)
- Access MySQL remotely via an [SSH tunnel](/knowledgebase/cpanel-databases/how-to-access-mysql-remotely)
- [Profile slow PHP requests with Xdebug](/knowledgebase/dev-cli/profiling-slow-php-requests-with-xdebug)

## Troubleshooting connection problems

**Connection refused or timed out** - the most common cause is using the wrong port. Double-check the port with our support team.

**Permission denied (publickey,password)** - if you are using key authentication, confirm that the key has been authorised in cPanel (not just imported). If you are using a password, check your cPanel credentials are correct.

**Host key verification failed** - this can happen if you have connected before and the server's key has changed legitimately (for example, after a server migration). Remove the old entry from `~/.ssh/known_hosts` and reconnect.

If you are still stuck after working through these steps, [raise a support ticket](/knowledgebase/getting-started/how-to-create-a-support-ticket-in-mykualo) and we will help you get connected.


---

_Source: Kualo Knowledgebase — https://www.kualo.com/knowledgebase/dev-cli/using-ssh-on-kualo-hosting-a-getting-started-guide · © Kualo Ltd._
