← Back to list

I Wanted to Control a Mini PC Sitting 1,000 Miles Away. Here’s the Rabbit Hole That Followed.

A brutally honest beginner’s guide to setting up SSH on a ZimaBlade running CasaOS — the stuff nobody tells you.

Rohit Rajana · 2026-03-14 21:10 · 5 claps · 5.0 min read
#zimablade #mini-pc #ssh #linux #homelab
Open on Medium ↗
Wiki topics: 🔓 · Open Source 🏃 · Running & Endurance

I Wanted to Control a Mini PC Sitting 1,000 Miles Away. Here’s the Rabbit Hole That Followed.

A brutally honest beginner’s guide to setting up SSH on a ZimaBlade running CasaOS — the stuff nobody tells you.

Photo by NASA on Unsplash

Photo by NASA on Unsplash

There’s a small, credit-card-sized computer sitting next to my TV in the hallway right now.

It’s a ZimaBlade 7700 — a fanless, low-power mini PC that I’ve been building into my personal homelab server. Pi-hole for ad blocking. Tailscale for private networking. And eventually, Nextcloud, Jellyfin, and more.

The goal? Access it remotely. Manage it from anywhere in the world. SSH into it from across the globe like some kind of tech wizard and just… do stuff.

Simple enough, right?

Well. It took a borrowed keyboard, two trips to a monitor in the hallway, one very frustrating SSH permission wall, and about two hours of troubleshooting to get there. Here’s everything I learned — so you don’t have to.

First: What Even Is a ZimaBlade?

The ZimaBlade is a compact x86 single-board computer designed for homelab use. It runs a full Debian-based Linux OS with CasaOS — a slick web GUI that lets you manage apps, Docker containers, and files from a browser interface.

Think Raspberry Pi, but more powerful, with PCIe expansion, and aimed squarely at people who want a personal cloud server at home.

Mine was set up with one goal: always-on, self-hosted infrastructure I can access from anywhere.

The Setup: What I Actually Had to Do Before Any of This

Here’s what the guides don’t tell you: you can’t just plug a ZimaBlade into your router and SSH into it straight away.

I found this out the hard way.

What I did:

  1. Connected the ZimaBlade to my router via Ethernet
  2. Powered it on
  3. Tried to SSH into it from my Windows machine
  4. Got nothing. Connection refused.

Because — and this is the part that catches everyone — CasaOS needs an initial boot setup through a physical display. It doesn’t expose SSH out of the box.

So I grabbed a Mini DisplayPort to HDMI adapter, connected it to the TV in the hallway, and powered it on again.

There it was: the Debian TTY login screen.

Debian GNU/Linux — casaos tty1
casaos login: _

Then I reached for my wireless Bluetooth keyboard.

It didn’t work. The ZimaBlade’s USB Bluetooth dongle wasn’t initialized yet. No input. Nothing.

I borrowed my roommate’s old wired USB keyboard, plugged it in, and finally — finally — I was in.

Logging Into the ZimaBlade TTY for the First Time

At the login screen, use:

  • Username: root
  • Password: Your CasaOS web GUI password (if you never set one during setup, try casaos)

If it works, you’ll see:

root@casaos:~#

That’s the root shell. You’re in. Now let’s get SSH working.

Step 1: Is SSH Even Running?

Check first before doing anything:

systemctl status ssh

On my ZimaBlade, it said active (running). So SSH was already installed and running — it just wasn’t accepting my connections. That’s a different problem. More on that in a moment.

If yours isn’t running:

apt update && apt install openssh-server -y
systemctl enable ssh
systemctl start ssh

Step 2: Find Your ZimaBlade’s IP Address

bash

ip a | grep "inet " | grep -v 127

You’ll see something like:

inet 192.168.1.47/24

That 192.168.1.47 is your ZimaBlade's local IP. Write it down.

Step 3: The Wall — “Permission Denied (publickey, password)”

This is where most people get stuck, including me.

I opened PowerShell on my Windows machine and ran:

ssh root@192.168.1.47

Three password attempts. Then:

root@192.168.1.47: Permission denied (publickey,password).

What’s happening here?

CasaOS ships with SSH configured to refuse password-based root logins by default. It’s a security hardening choice — but it’s also a brick wall when you’re trying to set things up for the first time and don’t have SSH keys configured yet.

The fix: edit the SSH config file directly on the ZimaBlade.

Step 4: Fixing the SSH Config

On the ZimaBlade, open the SSH config file:

nano /etc/ssh/sshd_config

Scroll through and find these two lines. They’ll likely look like this — with a # in front of them, which means they're commented out (disabled):

#PermitRootLogin prohibit-password
#PasswordAuthentication yes

Quick tip: Use Ctrl+W inside nano to search for a word.

Change them to exactly this:

PermitRootLogin yes
PasswordAuthentication yes

Remove the # and fix the value on PermitRootLogin. That prohibit-password setting is what was blocking you.

Save and exit:

  • Ctrl+XYEnter

Restart SSH:

systemctl restart ssh

Step 5: You’re In

Back on your Windows machine:

ssh root@192.168.1.47

First time connecting, you’ll see:

The authenticity of host '192.168.1.47' can't be established.
Are you sure you want to continue connecting (yes/no)?

Type yes. Enter your password.

root@casaos:~#

There it is.

I’m sitting thousands of miles away from that hallway. The ZimaBlade is quietly humming next to the TV. And I’m typing commands directly into it like it’s sitting on my desk.

That feeling never gets old.

Step 6: Change the Root Password

The first thing you should do once you’re in:

passwd

Set something strong. Characters won’t show as you type — that’s normal. Hit Enter when done.

Step 7: Stop Using Root for Everything

Running as root all the time is bad practice. Create a regular user:

adduser yourname

It’ll ask for a password and some optional info (name, room number, etc.) — just hit Enter to skip the extras.

Give them sudo (admin) access:

usermod -aG sudo yourname

Now SSH in as your regular user going forward:

ssh yourname@192.168.1.47

When you need admin commands, prefix with sudo.

Connecting from iPad (FYI)

If you want to SSH from your phone or tablet, Termius (free on the App Store) is the best option. Clean interface, saves multiple hosts, works exactly like PuTTY.

Setup is straightforward: add your ZimaBlade IP, username, and password. Done.

Do a Full System Update While You’re Here

apt update && apt upgrade -y
apt autoremove -y && apt autoclean

Check disk usage:

df -h

Disable stuff you don’t need:

systemctl disable bluetooth --now
systemctl disable avahi-daemon --now

Quick Troubleshooting Reference

What’s Next

Now that SSH is working, here’s what I’m building out next on this ZimaBlade:

  • Pi-hole — network-wide ad blocking ✅
  • Tailscale — private VPN mesh so I can SSH in from anywhere, not just the local network
  • Portainer — Docker container management ✅
  • Nextcloud — self-hosted cloud storage (waiting on external drives)
  • Jellyfin — personal media server
  • Vaultwarden — self-hosted password manager

SSH access was the foundation. Everything else gets built on top of it.

The Real Lesson Here

Setting up a homelab isn’t hard. But it is full of small surprises — a display adapter you didn’t know you needed, a Bluetooth keyboard that doesn’t work at boot, a default SSH config that silently blocks you.

The guides online usually skip the messy parts. This one didn’t.

If you’re building something similar and you hit a wall, feel free to drop a comment. Happy to help.

If this helped you, give it a clap. Building out more homelab content — ZimaBlade, Proxmox, self-hosted services, and network security. Follow along if that’s your thing.

Tags: Homelab Linux SSH ZimaBlade CasaOS SelfHosted Networking Debian TechTips Beginner


메타데이터
post_id
35c2d5e5eaf9
slug
i-wanted-to-control-a-mini-pc-sitting-1-000-miles-away-heres-the-rabbit-hole-that-followed-35c2d5e5eaf9
url
https://medium.com/@rooh7t/i-wanted-to-control-a-mini-pc-sitting-1-000-miles-away-heres-the-rabbit-hole-that-followed-35c2d5e5eaf9
canonical_url
https://medium.com/@rooh7t/i-wanted-to-control-a-mini-pc-sitting-1-000-miles-away-heres-the-rabbit-hole-that-followed-35c2d5e5eaf9
author_url
https://medium.com/@rooh7t
status
ok
fetched_at
2026-07-11 23:42:18