How to connect to your server via Secure Shell (SSH)

SSH provides encrypted access for running commands on your hosting server. You can manage files, review logs, and handle supported website tasks.

A blank terminal can feel unfamiliar during your first connection. However, you don’t need advanced skills for the basic steps. You need accurate details, an SSH client, and careful checks.

This guide covers Windows, macOS, Linux, and HostPapa account differences. It also explains keys, fingerprint checks, and common connection errors. Please keep your account dashboard handy while following each step.

CONTENTS TABLE

  • Prepare your SSH connection
  • Connect from your computer
  • Secure and manage access
  • Disconnect without interrupting work
  • Troubleshoot and find support

Prepare your SSH connection

What SSH does

Secure Shell, often called SSH, provides secure, text-based shell access to your server. Its core function is to connect two computers.

Another feature of SSH is that it protects traffic between connected computers. It does this by encrypting your commands and any passwords sent during authentication. SSH can open a shell or run individual remote commands. Your hosting service determines which mode and commands are available.

Think of SSH as your website’s maintenance entrance. Your dashboard offers buttons; SSH accepts written instructions. Both help manage hosting, but their controls feel different.

Common SSH tasks include:

  • Checking website files and folders.
  • Reviewing logs during troubleshooting.
  • Running WP-CLI, Git, or Composer where supported.
  • Managing services with suitable server permissions.

Business owners often encounter SSH during a website repair. This could be because an update failed before a busy sales period.

File Manager may suit smaller tasks without terminal access. Secure File Transfer Protocol (SFTP) offers another approach for supported file transfers. Choose the tool that matches your task and account permissions.

Check your hosting service

HostPapa SSH access varies across products and account configurations. Please don’t assume every plan provides the same shell or permissions.

Hosting serviceConfirmed guidancePlease check before connecting
Shared hostingNot available on this hosting service.
Managed WordPressRSA keys only; port 2222; individual commands. Key authentication only; dashboard activation required.Environment status and dashboard connection details. Site Information details and supported key types.
Managed VPSUsername, port, root permissions, authentication.
Self-managed VPSInitial access details and recovery methods.
Dedicated hostingProvisioned settings and administrator permissions.

Current Managed WordPress includes Core, Standard, Boost, and Turbo. These plans provide non-interactive SSH, not a normal terminal shell. Each connection runs one permitted command, then returns its output. They don’t support sudo or command chaining.

Legacy plans include Start, Plus, Pro, and Ultra. Enable SSH within your site dashboard’s Advanced tab. Import your public key, then authorize it using the checkmark. Password authentication isn’t supported for these legacy accounts.

Find your connection details

Your connection needs accurate account and server information. Gather these details before opening a terminal window. An incorrect username can look like a broken key. The wrong port can look like an unreachable server.

DetailMeaningWhere you’ll use it
Hostname or IPYour hosting server’s address.The SSH connection destination.
UsernameYour permitted server account.Before the hostname.
PortThe server’s SSH network entry point.The port flag.
AuthenticationAn accepted password or matching key.During sign-in.

OpenSSH normally uses port 22 unless settings specify another port. Current HostPapa Managed WordPress uses port 2222 instead. Please copy your own account details rather than borrowing another example.

Current Managed WordPress displays details within its Access tab. Its Overview tab also includes an SSH Access area. Legacy accounts use their SFTP username and Site Information IP.

A domain name may point somewhere other than your hosting server. This matters during migrations or recent DNS changes. Use the hosting details supplied for your specific account.

Choose an SSH client

An SSH client handles your computer’s side of the connection. OpenSSH supports the commands used throughout this guide. Other clients offer graphical controls and saved connection profiles.

ClientPlatformPractical use
OpenSSHWindows, macOS, Linux.Shared command syntax across computers.
PuTTYWindows.Graphical settings and saved sessions.
MobaXtermWindows.Tabbed sessions and file browsing.
TermiusMultiple platforms.Connection profiles across supported devices.
TabbyMultiple desktop platforms.Terminal profiles and customization.
VS Code Remote – SSHWindows, macOS, Linux.Remote editing where server policies permit.

Client compatibility depends on your server’s capabilities. Remote editing tools need more than basic SSH authentication. Confirm hosting restrictions before attempting remote development.

Key storage deserves particular attention with cloud-connected clients. Check whether an application uploads keys or connection details. Convenience matters, but your private key remains sensitive.

Connect from your computer

Connect from Windows

Windows Terminal provides a convenient interface for SSH commands. PowerShell and Command Prompt can also run the client. First, check whether OpenSSH Client is available.

ssh -V

A version response means the terminal found your client. Otherwise, search Windows Settings for Optional features. Find OpenSSH Client, then install it if missing. Close and reopen your terminal afterward.

OpenSSH Client and OpenSSH Server serve different purposes. You need the client for accessing your hosting server. Installing a local server isn’t required for this task.

Start an interactive connection using your own account details:

ssh <username>@<hostname>

Replace every bracketed placeholder before running the command. Don’t type the angle brackets themselves. Check the server fingerprint before accepting the first connection. Enter your password only if your account supports password authentication.

Password entry normally displays no characters or a moving cursor. That blank space can feel like a frozen keyboard. It’s normal terminal behaviour, not a failed connection.

PowerShell can use a private key and custom port:

ssh -i “$HOME\.ssh\id_rsa” -p <port> <username>@<hostname>

Command Prompt uses a different home-folder expression:

ssh -i “%USERPROFILE%\.ssh\id_rsa” -p <port> <username>@<hostname>

Current Managed WordPress requires a command after your connection details:

ssh -i “$HOME\.ssh\id_rsa” -p 2222 <username>@<hostname> “wp plugin list”

This lists plugins without opening an interactive shell. Use your dashboard’s username and host values. Wait until the environment becomes Active after adding your key.

Use PuTTY instead

PuTTY offers a graphical alternative for Windows connections. Open its Session screen and enter your server address. Set the supplied port and select SSH. Please save the session name if you’ll reuse these settings.

Then follow this sequence:

  1. Click Open.
  2. Compare the displayed fingerprint against a trusted source.
  3. Accept only after confirming the fingerprint matches.
  4. Enter your assigned server username.
  5. Provide your password or configured key when requested.

PuTTY’s private key format uses the .ppk extension. PuTTYgen can import an OpenSSH key and save it in that format. Select the resulting key within PuTTY’s SSH authentication settings. Exact menu labels may vary between software versions.

A graphical client doesn’t change your hosting permissions. Current Managed WordPress still requires non-interactive command execution. An ordinary PuTTY shell session won’t provide that account’s intended workflow.

Connect from macOS

macOS includes an SSH client accessible through Terminal. Open Applications, then Utilities, then Terminal. Spotlight can also find Terminal by name.

For an account supporting an interactive shell, run:

ssh <username>@<hostname>

Compare the first fingerprint before accepting the connection. Then enter the supported password or key passphrase. Your account’s authentication rules determine which prompt appears.

For a custom port and private key, run:

ssh -i ~/.ssh/id_rsa -p <port> <username>@<hostname>

The tilde represents your local home folder. The hidden .ssh folder commonly stores your SSH files. Keep private keys separate from shared project folders.

Current Managed WordPress needs its non-interactive command format:

ssh -i ~/.ssh/id_rsa -p 2222 <username>@<hostname> “wp plugin list”

Each connection runs one supported command. Don’t combine several commands into one quoted instruction. Current Managed WordPress doesn’t support command chaining.

Connect from Linux

Linux installations may already include the OpenSSH client. Check its presence before installing additional packages.

ssh -V

For Debian or Ubuntu, install the client if missing:

sudo apt install openssh-client

For Fedora and related distributions, use:

sudo dnf install openssh-clients

These installation commands affect your own Linux computer. They don’t grant administrator permissions on your hosting account. That distinction helps prevent confusion about sudo access.

Then connect using the same syntax shown for macOS:

ssh -i ~/.ssh/id_rsa -p <port> <username>@<hostname>

Add a supported quoted command for current Managed WordPress. Keep the host, username, key, and port account-specific.

Understand SSH command flags

SSH flags change how the client establishes its connection. Most everyday tasks need only a few. Their order matters less than using the correct values.

FlagPurposeImportant detail
-pSets the server port.Lowercase p.
-iSelects an identity file.Normally your private key.
-vShows connection diagnostics.Useful during troubleshooting.
-VShows the client version.Uppercase V.

These flags come from OpenSSH’s command reference. Additional verbose flags increase diagnostic detail. Most first checks work well with one verbose flag.

Basic connection:

ssh <username>@<hostname>

Custom port:

ssh -p <port> <username>@<hostname>

Private key:

ssh -i <private-key-path> -p <port> <username>@<hostname>

Verbose troubleshooting:

ssh -v -i <private-key-path> -p <port> <username>@<hostname>

Treat these as templates, not complete account credentials. Copying commands without replacing placeholders won’t establish your connection.

Secure and manage access

Connect with SSH keys

SSH keys provide authentication through a matching file pair. The public key belongs on the server. Please keep the private key on your device. Your client proves possession without sending that private key.

A passphrase protects the private key file. It differs from your hosting account password. Don’t share either secret within tickets, screenshots, or chat messages.

Key compatibility depends on your hosting product. Current HostPapa Managed WordPress accepts RSA public keys only. Its dashboard rejects Ed25519 and ECDSA public keys. Don’t assume one key type works across every HostPapa service.

Generate its documented RSA key using:

ssh-keygen -t rsa -b 4096 -C “you@example.com”

Choose a storage location and enter a strong passphrase. Don’t overwrite an existing key without understanding its current uses. The public file ends with .pub. Its matching private file does not.

Where your server supports Ed25519, this command creates that key:

ssh-keygen -t ed25519 -C “you@example.com”

Confirm compatibility before uploading it. Avoid DSA and outdated algorithm workarounds. Replacing weak keys is preferable to weakening client security.

Current Managed WordPress key setup follows these steps:

  1. Open Access, then SSH Keys.
  2. Click Add SSH Key.
  3. Give the key a recognizable name.
  4. Paste the RSA public key contents.
  5. Save and wait until the environment becomes Active.

Upload only the public key. Keep private-key passphrases on your own device. Current account details and instructions appear in HostPapa’s dedicated guide.

For cPanel accounts, the documented path starts under Security. Open SSH Access, then Manage SSH Keys. Public keys must be imported and authorized. Shell eligibility remains a separate account-level requirement.

Verify the host fingerprint

A host fingerprint helps identify the server you’re reaching. Your login key identifies you; the host key identifies it. These checks solve different security problems. Both matter before sensitive work begins.

Your first connection may display a message like this:

The authenticity of host ‘<hostname>’ can’t be established.

ED25519 key fingerprint is SHA256:<fingerprint>.

Are you sure you want to continue connecting?

Compare the fingerprint against an independent, trusted source. An authenticated administrative console may provide that source. Ask Support about an approved verification route if uncertain.

On an authorized server console, an administrator can inspect:

ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub

This example checks an Ed25519 host key. Servers may present other host-key types. Compare the same algorithm and fingerprint format on both sides.

Accept only after the values match. OpenSSH then records the host key within known_hosts. Later connections check against that saved identity. Never treat a fingerprint prompt as a meaningless hurdle.

Confirm your connection worked

An interactive shell often displays a remote command prompt. Confirm the account and working folder before making changes. A familiar-looking prompt alone isn’t enough.

Run these commands individually:

whoami

hostname

pwd

They identify your user, server, and current directory. Read the results before changing files. A wrong account can cause confusing permission failures later.

Current Managed WordPress doesn’t provide that interactive prompt. Run an allowed command through the SSH connection instead:

ssh -i ~/.ssh/id_rsa -p 2222 <username>@<hostname> “pwd”

The returned output confirms successful authentication and command execution. The connection then ends as designed. That behaviour isn’t an unexpected logout.

Disconnect without interrupting work

An interactive session ends when its shell exits. Finish important work before closing the terminal window. Then run:

exit

Ctrl+D can also close a shell. For a frozen interactive session, press Enter first. Then type this escape sequence:

~.

OpenSSH recognizes that sequence at the beginning of a line. It closes the connection from your side. Use it carefully when remote work may still be running.

Long-running tasks may need screen or tmux where permitted. Confirm installation and account policy before relying on either. Current Managed WordPress doesn’t provide a general interactive shell.

Save an SSH configuration

A configuration file reduces repeated typing and connection mistakes. OpenSSH reads per-user settings from the .ssh folder. Create a file named config without a text-file extension.

On macOS and Linux, use ~/.ssh/config. Windows commonly uses your user folder’s .ssh directory. Add a profile using your confirmed account details:

Host hostpapa

    HostName <hostname>

    User <username>

    Port <port>

    IdentityFile ~/.ssh/id_rsa

    IdentitiesOnly yes

The profile stores connection settings, not your private key contents. Keep passwords and passphrases outside this file.

Connect through the saved nickname:

ssh hostpapa

For current Managed WordPress, set port 2222. Then supply one permitted command:

ssh hostpapa “wp plugin list”

A saved profile doesn’t remove the account’s command restrictions. It simply makes the connection details easier to reuse.

Troubleshoot and find support

Fix common SSH errors

SSH errors often indicate which connection stage failed. Start with the exact message rather than changing everything. Check local software, destination details, identity, then account permissions.

Keep the full error available while testing. Change one setting at a time. That makes successful fixes easier to recognize and repeat.

‘ssh’ is not recognized

Your terminal can’t find the SSH client. Install OpenSSH Client or check its executable path. Reopen the terminal after installation, then check the version. If the problem continues, record your operating system.

ssh: command not found

Linux may need its OpenSSH client package installed. Use the package command appropriate for your distribution. Don’t install server software merely because the client is missing.

Could not resolve hostname

The supplied hostname couldn’t be resolved into an address. Check spelling, spaces, and copied punctuation. Don’t include a website scheme or trailing slash. Try the confirmed server IP when DNS is uncertain.

A hostname lookup can provide useful diagnostic information:

nslookup <hostname>

Keep the hostname and lookup result for Support. Recent migrations may mean your domain still points elsewhere.

Connection timed out

A timeout means the connection received no timely reply. Possible causes include incorrect details, network filtering, or server problems. Confirm the address and port before investigating deeper.

Try another trusted network where permitted. Note the attempt’s time and your public IP. Authorized server administrators can inspect firewall settings through recovery access.

Connection refused

A refusal often means the connection was actively rejected. SSH may be disabled or listening on another port. A firewall can also reject connection attempts.

Check account activation and the supplied port. On an authorized VPS console, inspect the SSH service. Don’t change shared-hosting services or firewall rules yourself.

Permission denied (publickey)

The offered key didn’t authenticate your requested account. This message doesn’t prove the private key file is damaged. Wrong usernames and unauthorized public keys can produce it.

  • Confirm your exact server username.
  • Check public-key installation and authorization.
  • Select the matching private key.
  • Confirm the accepted key algorithm.
  • Use verbose output for further clues.

Current Managed WordPress specifically requires an RSA key. Legacy accounts require their documented authorization step. Neither product accepts password authentication through these workflows.

Permission denied, please try again

The server rejected the attempted authentication. Recheck your username and permitted sign-in method. Dashboard credentials may differ from server credentials.

Stop repeated guessing and use the approved reset process. Confirm that password authentication exists for your account. Share the error with Support, never the password.

Too many authentication failures

An SSH agent may offer several keys before the correct one. Specify your intended key and restrict identity selection:

ssh -o IdentitiesOnly=yes -i <private-key-path> -p <port> <username>@<hostname>

This controls which identities the client offers. It doesn’t override server authentication policy. Save the setting within your profile if needed.

WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!

The server presented a different key than previously recorded. A rebuild or migration can explain the change. An intercepted connection can also trigger this warning. Don’t bypass it without independent verification.

After confirming the replacement fingerprint, remove the stale record:

ssh-keygen -R <hostname>

For a custom port, use:

ssh-keygen -R “[<hostname>]:<port>”

Reconnect and verify the new fingerprint before accepting. Removing an old entry doesn’t establish the new server’s authenticity.

WARNING: UNPROTECTED PRIVATE KEY FILE!

Your private key may be readable by other local users. OpenSSH can refuse keys with unsafe permissions. On macOS or Linux, restrict access using:

chmod 700 ~/.ssh

chmod 600 ~/.ssh/id_rsa

Apply these commands only to your own files. On Windows, check the key’s Security permissions instead. Remove unnecessary access without accidentally locking yourself out.

Server-side ownership and permissions can also affect authentication. Investigate them only with authorized administrative access.

Connection closed immediately after login

Some accounts intentionally provide no interactive shell. Current Managed WordPress requires one allowed command per connection. Retry using its documented command format.

Elsewhere, shell restrictions or startup-file errors may end sessions. Check account status and recent configuration edits. Report whether SFTP still works with the same account.

Connected, but commands are unavailable

Successful authentication doesn’t guarantee unrestricted server access. Missing programs and account limits can prevent commands from running. Current Managed WordPress uses an explicit command allow-list. It doesn’t provide sudo, Python, Ruby, or Node.

Report the exact command and complete error. Please don’t assume root access exists because SSH works. Different hosting products provide different responsibilities and controls.

Gather details before contacting Support

A useful ticket replaces guesswork with clear connection evidence. Include these details through an authenticated support channel:

  • Your hosting product and plan.
  • Your operating system and SSH client version.
  • Your attempted username, hostname, and port.
  • Your authentication method and key type.
  • The complete error message.
  • The attempt’s date, time, and time zone.
  • Any recent DNS, firewall, or account changes.
  • Sanitized verbose connection output.

Never include passwords, private keys, or key passphrases. Those secrets aren’t needed for your diagnostic description. Keep screenshots free from unrelated account information.

Save verbose output locally using:

ssh -v -p <port> <username>@<hostname> 2> ssh-debug.txt

Current Managed WordPress users should append a permitted command. Review the resulting file before sharing it. Diagnostics can expose usernames, addresses, paths, and configuration details. Remove unrelated sensitive information while preserving useful error context.

HostPapa provides contact via dashboard tickets, live chat, and phone support. Its Knowledge Base offers related walkthroughs and video resources. Choose the channel that suits your issue and urgency.

Broader hosting questions may need a separate product discussion. Before changing plans, please identify the commands and permissions you need. Ask about shell access, administrator control, backups, and recovery.

If you need help with your HostPapa account, please open a support ticket from your dashboard.

Related Articles

Get online with our affordable web hosting

Get online with our affordable web hosting

Learn more now
HostPapa Mustache