Building a Secure Remote Connection on ParrotOS

4/16/20212 min read

Setting Up SSH Access Into Proxmox VMs Using WSL

In this project, I set out to configure secure SSH access into my Linux virtual machines hosted on Proxmox, using the Windows Subsystem for Linux (WSL).
Instead of relying on third-party SSH clients, I wanted a lightweight, built-in solution that allowed me to connect directly to my VMs from my Windows environment and eventually use certificate-based authentication for seamless logins.

Why WSL for SSH?

While tools like PuTTY and MobaXterm are popular for managing SSH connections on Windows, WSL offers a more native Linux experience. It allows me to:

  • Use the built-in Linux ssh client directly from my Windows machine

  • Manage SSH keys and certificates without installing extra tools

  • Practice using Linux commands in a real shell environment

  • Avoid juggling multiple third-party apps

If you’re working on cybersecurity, networking, or Linux administration, WSL is an excellent way to keep your workflow clean and efficient.

Step 1 — Setting Up WSL

I started by installing Windows Subsystem for Linux (WSL) using Microsoft’s official guide:
🔗 How to Install WSL

After the installation:

  • WSL automatically prompted me to set up a username and password for my Linux environment.

  • Once configured, I had a functional Linux shell ready to go from my Windows terminal.

  • To launch WSL, I simply run:

    wsl

(Insert Screenshot #1 here — showing WSL installation or shell setup.)

Step 2 — Attempting SSH Into the Proxmox VM

Next, I wanted to SSH into one of my Proxmox-hosted Fedora VMs from my WSL terminal.
I checked the VM’s IP address by running inside the Fedora VM:

ip a

The result showed:

192.168.50.196

So, I tried a basic SSH connection from WSL:

ssh username@192.168.50.196

(Insert Screenshot #2 here — showing the failed SSH attempt.)

But the connection failed. That meant I needed to troubleshoot.

Step 3 — Troubleshooting SSH Connectivity

When SSH fails, there are three main areas to check:

1. Is the VM’s IP Address Correct?

Make sure the IP you’re using belongs to the VM itself, not the Proxmox host.

  • Check from Proxmox Web UI → VM → Summary → Network

  • Confirm the VM has a valid IP in your LAN subnet.

2. Is the VM Reachable Over the Network?

From WSL, try pinging the VM:

ping 192.168.50.196

  • If the ping works → The VM is reachable.

  • If it fails → There’s a networking issue. Check:

    • Proxmox VM network adapter is set to Bridged mode (vmbr0).

    • The VM has a valid gateway and DNS configuration.

    • Your firewall isn’t blocking ICMP.

3. Is SSH Running and Listening on the VM?

Inside the Fedora VM, confirm the SSH daemon is active:

sudo systemctl status sshd

If it’s inactive:

sudo systemctl enable sshd sudo systemctl start sshd

Also, confirm SSH is listening on port 22:

ss -tulpn | grep ssh

If port 22 is closed, open it:

sudo firewall-cmd --permanent --add-service=ssh sudo firewall-cmd --reload

Step 4 — Next Steps:
Setting Up Certificate-Based SSH Authentication

Once I have basic SSH connectivity working, the goal is to move away from password authentication and enable certificate-based SSH login for better security.

High-level steps:

  1. Generate an SSH keypair inside WSL:

    ssh-keygen -t rsa -b 4096

  2. Copy the public key to the VM:

    ssh-copy-id username@192.168.50.196

  3. Test login without a password:

    ssh username@192.168.50.196

  4. (Optional) Configure ~/.ssh/config in WSL for quick access.

I’ll cover the full certificate setup in a future blog post.

Wrap-Up

At this stage of the project, I’ve:

  • Installed and configured WSL on Windows

  • Set up a Linux terminal environment for SSH access

  • Begun troubleshooting SSH connectivity to my Proxmox-hosted Fedora VM

  • Planned to move toward passwordless SSH using certificates

Once SSH is working reliably, this will streamline remote access to all my Proxmox VMs and provide a secure, native workflow for managing multiple Linux environments.