One-command setup to configure any Ubuntu machine for remote desktop access from anywhere.
git clone https://github.com/YOUR_USERNAME/ubuntu-remote-setup.git
cd ubuntu-remote-setup
chmod +x setup.sh
./setup.shThe script will walk you through each step interactively.
- SSH server — key-based authentication, root login disabled
- GNOME Remote Desktop (RDP) — built-in RDP server, works with any RDP client
- Tailscale — access from anywhere without port forwarding
- Always-on — auto-login, disable sleep/suspend/screen lock
| From | Connect to |
|---|---|
| Same network | <local-ip>:3389 |
| Anywhere | <tailscale-ip>:3389 |
Use any RDP client:
- macOS: Microsoft Remote Desktop
- Windows: built-in Remote Desktop Connection (mstsc)
- Linux: Remmina
Run only what you need:
sudo ./modules/ssh.sh
./modules/rdp.sh
sudo ./modules/tailscale.sh
sudo ./modules/no-sleep.sh- Ubuntu 22.04 LTS or newer
- GNOME desktop environment
- Run from a local terminal (not over SSH for the RDP module)
grdctl rdp set-credentials YOUR_USERNAME NEW_PASSWORD
systemctl --user restart gnome-remote-desktop| Problem | Fix |
|---|---|
| RDP port not listening | Run ss -tlnp | grep 3389. If empty, ensure you're logged in locally and restart: systemctl --user restart gnome-remote-desktop |
| "User account did not work" | Re-set credentials: grdctl rdp set-credentials USER PASS |
| Connection refused remotely | Check Tailscale is running on both machines: tailscale status |
| Black screen | Make sure you're NOT using xrdp — this setup uses GNOME Remote Desktop which shares your existing session |