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 withssh-keygenand 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 -VA 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:
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:
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_ed25519Then this is enough:
ssh web-01Path 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.
plink: PuTTY from the command line
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:~/.sshis 700,authorized_keysis 600.REMOTE HOST IDENTIFICATION HAS CHANGED- the server key changed (usually after an OS reinstall). Remove the old entry withssh-keygen -R 203.0.113.10and 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 copyid_ed25519.pubintoauthorized_keyson the server - password-free login. - PuTTY: IP in Session, username in Connection > Data,
.ppkin 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/configturns a long command intossh 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.
EnterGUIDE40at checkout. One use per customer.
Pick a VPS and claim the discount →
