What is SSH Access and Why Developers Need It
SSH (Secure Shell) is the protocol that opens an encrypted command-line session between your computer and a server, by default on TCP port 22. On hosting it lets you run WP-CLI, Composer, Git, database exports and permission fixes directly, which is far faster than moving files one by one over FTP.
For developers, agencies and site owners who want to work on a hosting account or VPS from the command line safely.
knowledge
- Read time
- 4 min
- Sections
- 7
- Updated
- 14 Nov 2026
- Written by
- WebJi® team
Last editorial update: 14 November 2026.
What is SSH?
SSH (Secure Shell) is a network protocol that opens an encrypted command-line session on a remote server, by default over TCP port 22. It replaced Telnet, rsh and rlogin, which sent usernames, passwords and every command in plain text that anyone on the network could read.
Everything you type and everything the server prints back travels encrypted, so intercepted traffic is useless to an attacker. On a hosting account the shell is where bulk work happens: moving thousands of files, dumping a database or updating an application, jobs that FTP handles one file at a time.
What does SSH access let you do on hosting?
SSH access lets you run server commands directly, so tasks that time out in a browser or FTP client finish in one line. It is the working environment for developers, agencies and anyone maintaining WordPress at scale.
- Tools: WP-CLI, Composer, Git, mysqldump, rsync and permission sweeps.
- Bulk jobs: unzip a 2 GB backup, search-replace a database, or fix ownership across a site.
- Diagnostics: follow an error log live while you reproduce the fault.
- Deployment: pull code from a repository, as in deploying a website with Git.
| Hosting | SSH access | What you can change |
|---|---|---|
| cPanel shared hosting | Jailshell, usually after activation | Your own account's files and databases |
| VPS | Full root from first boot | The whole operating system |
| Dedicated server | Full root | The whole machine |
How do you connect to a server with SSH?
From a Mac or Linux terminal, or PowerShell on Windows 10 and later, run ssh user@yourserver; add -p only when the port is not 22 and -i to choose a key file.
ssh user@server.example.com
ssh -p 2222 user@server.example.com
ssh -i ~/.ssh/webji_key user@server.example.com
The first connection shows the server's host key fingerprint and asks you to confirm it. Compare it with the value from your host before typing yes; that single check stops an impostor server sitting between you and your files. Windows users who prefer a graphical client can follow the PuTTY guide, and "Connection refused" errors are traced in fixing SSH connection refused on a VPS.
How do you set up SSH key login?
Generate a key pair on your own computer, place the public key on the server, and log in without sending a password. The private key never leaves your machine; the server only checks that you hold it.
ssh-keygen -t ed25519 -C "you@yourbusiness.in"
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@server.example.com
ssh user@server.example.com
Give the key a passphrase when ssh-keygen asks, so a stolen laptop is not a stolen server. Where ssh-copy-id is unavailable, paste the contents of the .pub file into ~/.ssh/authorized_keys on the server, or import it in the hosting panel. Ubuntu-specific steps are in generating an SSH key on Ubuntu.
How do you enable SSH in cPanel?
In cPanel, open Security › SSH Access › Manage SSH Keys, generate or import a key, click Authorize, then connect with the cPanel username. The session opens in jailshell, a confined shell that limits you to your own account.
- Open SSH Access and choose Manage SSH Keys.
- Import your existing public key, or generate a new pair and download the private key.
- Click Manage next to the key, then Authorize.
- Connect with
ssh cpanelusername@yourdomain.inusing the port your host specifies.
Inside jailshell, WP-CLI, Composer, Git and mysqldump work normally; other accounts and the server's system files are fenced off. If the SSH Access icon is missing, shell access is disabled for the account and the host must turn it on. WebJi® cPanel hosting customers can request it from support@webji.services.
How is SSH different from FTP, SFTP and FTPS?
SSH gives you a command shell; FTP only moves files and sends the login in plain text; SFTP is file transfer that runs inside SSH on the same port 22. FTPS is a separate protocol: classic FTP wrapped in TLS.
| Protocol | Default port | Protection | Use it for |
|---|---|---|---|
| SSH | 22 | Encrypted session | Running commands |
| SFTP | 22 | Same SSH encryption, same keys | Default choice for hosting file transfer |
| FTPS | 21 (explicit TLS) or 990 (implicit) | TLS around FTP | Setups that mandate FTPS |
| FTP | 21 | None; logins and files in plain text | Legacy tools only |
The trade-offs are covered in FTP vs SFTP.
Which SSH commands should beginners learn first?
Ten commands cover most hosting work: pwd, ls -la, cd, tail -f, grep, find, nano, mysqldump, wp and chmod. None needs root, so they work the same in jailshell and on a VPS.
| Command | Example | What it does |
|---|---|---|
| pwd | pwd | Shows the directory you are in |
| ls -la | ls -la public_html | Lists files with permissions and owners |
| cd | cd public_html | Moves into the web root |
| tail -f | tail -f error_log | Follows a log live |
| grep | grep -i "fatal" error_log | Finds lines that match |
| find | find . -name "*.zip" -size +100M | Locates large or lost files |
| nano | nano .htaccess | Edits a file in the terminal |
| mysqldump | mysqldump -u dbuser -p dbname > backup.sql | Exports a database |
| wp | wp plugin update --all | Runs WP-CLI tasks |
| chmod | chmod 644 wp-config.php | Sets file permissions |
A longer reference is in Linux commands for hosting.
How do you keep SSH access secure?
Use key login with a passphrase, disable password login once keys work, verify host fingerprints, and remove keys the day someone leaves. On a VPS where you hold root, these habits matter most.
- Disable passwords: on a VPS set
PasswordAuthentication noin/etc/ssh/sshd_config, then reload the SSH service while keeping your current session open. - Investigate mismatch warnings: a "host key changed" warning means the server was rebuilt or something is intercepting; confirm with the host before continuing.
- Review authorized_keys: after every staff or agency change.
- Add a second factor: see SSH two-factor authentication.
Frequently asked questions
Is SSH the same as a VPN?
No. SSH encrypts a session to one server so you can run commands or transfer files. A VPN encrypts all network traffic between your device and a network. SSH can forward individual ports, but it is not a replacement for a full VPN.
Why does SSH ask "Are you sure you want to continue connecting"?
Because your computer has not seen that server's host key before. Typing yes stores the fingerprint in ~/.ssh/known_hosts, and future connections are checked against it. Compare the fingerprint with your host's published value the first time.
Can I use SSH on Windows without PuTTY?
Yes. Windows 10 and 11 include an OpenSSH client, so ssh, ssh-keygen and scp work in PowerShell or Command Prompt. PuTTY is still useful if you prefer saved sessions in a graphical window.
Why can't I run sudo on shared hosting?
Jailshell gives you control of your own account only, so system-wide commands such as sudo, installing packages or restarting services are blocked. If your project needs them, a VPS with full root is the right plan.
Last editorial update: 14 November 2026.
Ready to get started with WebJi®?
Join 12,000+ businesses across India and overseas. INR pricing, 18% GST shown before payment and 24/7 email support in Hindi and English — average first reply under 60 minutes.