Two ways to reach a server from Windows: the ssh client in PowerShell and PuTTY. From first password login to key-based login.

SSH is how you run commands on a server. This guide covers how to connect to a VPS over SSH from Windows two ways: through PuTTY, and through the built-in ssh client (it works in PowerShell and Windows Terminal). Both do the same job - here is each one, from the first password login to key-based login with no password.

TL;DR. Get the server IP and root password from the panel. Built-in client: ssh root@IP, confirm the fingerprint, enter the password. Then create a key with ssh-keygen and copy it to the server - the password is no longer needed. PuTTY does the same: IP in Host Name, key under Auth.

Before you start

Open your server's page in the panel. It shows the IPv4 address and the root password - those are your login details. Copy the password now: it is not echoed when typed into a terminal. If you do not have a server yet, order one first - see "How to order your first VPS".

Path A. Connect through the built-in Windows client (PowerShell / Windows Terminal)

Windows 10 and 11 ship the SSH client. No install needed - open Terminal or PowerShell and go. Everywhere below 203.0.113.10 is an example; use your own server's IP.

Step 1. Check the client is there

Open PowerShell (or Windows Terminal) and run:

ssh -V

A reply like OpenSSH_for_Windows_9.5p1, LibreSSL 3.8.2 means it is there. If the command is not found: Settings -> Apps -> Optional features -> Add a feature -> "OpenSSH Client".

Step 2. First connection with a password

Connect as root to the IP from the panel:

ssh [email protected]

On the very first connection the client shows the server's key fingerprint and asks for confirmation:

The authenticity of host '203.0.113.10' can't be established.ED25519 key fingerprint is SHA256:cKeo+ciXwbZg9QmHHyE95H852Bl2tZtd7O48ewydBC8.Are you sure you want to continue connecting (yes/no/[fingerprint])?

This is anti-spoofing. Verifying it for real needs a channel independent of SSH, and weasel's panel isn't one - it doesn't show the server's key fingerprint. In practice this is plain trust-on-first-use: on a server that was just created and has never been connected to, the risk of a swap is minimal - type yes (it is remembered and not asked again), then enter the root password (characters are not shown - that is normal) and press Enter.

Step 3. Create a key so you stop typing the password

A key is a file pair on your machine. The private half stays with you, the public half goes on the server; whoever presents the private key gets in, and a key cannot be brute-forced. Create the pair on your machine:

ssh-keygen -t ed25519 -C "you@laptop"

You can press Enter at all three prompts. A passphrase is optional but safer if the laptop is lost. Two files appear in C:\Users\Name\.ssh: id_ed25519 (private, never share) and id_ed25519.pub (public, goes on the server).

Step 4. Copy the public key to the server

Windows has no ssh-copy-id, so copy it in one line: read the local .pub file and append it to authorized_keys on the server.

type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh [email protected] "mkdir -p ~/.ssh; cat >> ~/.ssh/authorized_keys; chmod 600 ~/.ssh/authorized_keys"

The last time you type the root password.

Step 5. Key login

Connect again:

ssh [email protected]

It now connects immediately, with no password prompt.

Step 6. A short name instead of the IP

Describe the server in %USERPROFILE%\.ssh\config (create it if missing):

Host web-01    HostName 203.0.113.10    User root    IdentityFile ~/.ssh/id_ed25519

Then this is enough:

ssh web-01

Path B. Connect through PuTTY

PuTTY is a free app from putty.org. Handy because every setting lives in one window and saves as a profile. The installer also adds puttygen.exe (key generator) and plink.exe (the same client for the command line). If PuTTY will not connect, see "Common errors" below.

Step 1. Session: address and port

Put the panel IP in Host Name (or IP address), leave Port at 22, connection type SSH.

Step 2. Save the profile

Type a name in Saved Sessions and click Save. Next time, pick it from the list and click Load.

Step 3. Username

Expand Connection -> Data on the left, put root (or your user) in Auto-login username so PuTTY does not ask for the login every time.

Step 4. Key instead of password

PuTTY uses its own key format - .ppk. Run PuTTYgen, click Generate, move the mouse in the window for randomness, then Save private key. Copy the text from PuTTYgen's top box (the public key) to authorized_keys on the server, as in Path A step 4.

Then in PuTTY: Connection -> SSH -> Auth -> Credentials, Private key file for authentication - point it at the saved .ppk.

Step 5. First connection

Click Open. On the first connection PuTTY shows a Security Alert with the server key fingerprint - the same authenticity check as yes in the built-in client. weasel's panel doesn't show the fingerprint, so there's nothing to independently compare it against: on a freshly created server this is plain trust-on-first-use, click Accept.

Once PuTTY is set up, you can connect from PowerShell without a window:

plink -ssh [email protected]

The first time it asks Store key in cache? (y/n) - press y, then enter the password (or the key is used if set in the profile).

Common errors

  • Connection timed out - nothing reaches the server: wrong IP, server off, or the port is firewalled. Check the address in the panel and the server state.
  • Connection refused - the server answers but nothing listens on port 22: sshd is down or SSH is on another port. Checking this means logging into the server, and SSH is exactly what's unreachable - open the web console in the weasel panel (Console tab), check systemctl status ssh and start the service with sudo systemctl start ssh if needed.
  • Permission denied (publickey,password) - wrong password, or password auth is off and the key was not picked up. On the server check permissions: ~/.ssh is 700, authorized_keys is 600.
  • REMOTE HOST IDENTIFICATION HAS CHANGED - the server key changed (usually after an OS reinstall). Remove the old entry with ssh-keygen -R 203.0.113.10 and reconnect.

FAQ

Do I need PuTTY on Windows 10 and 11?

No. Windows 10 and 11 ship the built-in OpenSSH client - the ssh command in PowerShell or Windows Terminal. Install PuTTY when you want a GUI with saved connection profiles.

What if PuTTY will not connect?

Check the IP and port 22 in Host Name, the server status in the panel, and the error text. Common messages ("Connection timed out", "Connection refused", "Permission denied") are explained under "Common errors". If SSH is unreachable entirely, open the web console in the weasel panel (Console tab) or restart the server with Soft reboot; a ticket is for when that doesn't help.

PuTTY or the built-in client?

For one-off tasks, the built-in ssh: it is already there and works like macOS and Linux. PuTTY is better when you keep many servers and want saved profiles.

Where are the keys on Windows?

In C:\Users\Name\.ssh. The built-in client looks there automatically. PuTTY needs a .ppk file; its path is set in the profile.

Can I use a built-in-client key in PuTTY?

Yes. Open id_ed25519 in PuTTYgen (Conversions -> Import key) and save it as .ppk.

Should I change the root password after setting up a key?

The panel keeps the root password (Reveal password button), and it stays useful for the web console if SSH breaks. Do disable SSH password login on the server side once the key works.

In short

  • IP and root password are on the server page in the panel.
  • Built-in client: ssh root@IP, confirm the fingerprint, enter the password.
  • Key: ssh-keygen -t ed25519, then copy id_ed25519.pub into authorized_keys on the server - password-free login.
  • PuTTY: IP in Session, username in Connection > Data, .ppk in SSH > Auth > Credentials.
  • The first-connection fingerprint - the panel doesn't show it, so there's nothing to check it against; on a freshly created server this is plain trust-on-first-use.
  • ~/.ssh/config turns a long command into ssh web-01.

🎁 40% off the first month of a new VPS. Promo code GUIDE40
No server to connect to yet? First month at a discount.
Enter GUIDE40 at checkout. One use per customer.
Pick a VPS and claim the discount →