
Managing a Debian 13 server or workstation from a different location is something almost every Linux sysadmin needs at some point. Whether you are working from home, accessing a headless server in a data center, or supporting a remote team member’s machine, you need a tool that is reliable, secure, and fast to set up. Chrome Remote Desktop is exactly that. It is a free remote desktop solution developed by Google that runs entirely through your web browser without requiring any additional client software, VPN, or complex firewall rules.
In this guide, you will learn step by step how to install Chrome Remote Desktop on Debian 13, configure a desktop environment, authorize your machine through Google’s secure web interface, and connect from any device in the world. Every command shown here was tested on a live Debian 13 “Trixie” installation. This tutorial covers both desktop setups and headless server configurations, making it useful for beginners and experienced sysadmins alike.
What Is Chrome Remote Desktop and Why Use It on Debian 13?
Chrome Remote Desktop (CRD) is a remote access tool by Google that uses a proprietary protocol called Chromoting to stream a full graphical desktop session over an encrypted connection. Unlike VNC or XRDP, CRD does not require you to open any inbound firewall ports. All traffic routes through Google’s servers using end-to-end encryption, so you do not need a static IP address or a port forwarding rule on your router.
Debian 13, codenamed “Trixie”, is the current stable release of Debian Linux. It ships with updated packages, improved hardware support, and a cleaner post-install experience compared to Debian 12. Chrome Remote Desktop supports Debian 13 natively since it uses a standard amd64 Debian package that installs cleanly on Trixie’s APT system.
Here is a quick look at why CRD stands out for Debian 13 remote access:
- No port forwarding required: traffic tunnels through Google’s infrastructure
- Free with no subscription: zero cost for personal and professional use
- Cross-platform access: connect from Windows, macOS, Android, iOS, or another Linux machine
- Low resource usage: especially when paired with the XFCE desktop environment
- Authenticated via Google Account: no need to manage extra user databases or certificates
Prerequisites for This Tutorial
Before you begin, make sure you have the following in place:
- Debian 13 “Trixie” installed and booted (desktop or headless/server)
- A non-root user account with
sudoprivileges - A Google Account (Gmail) for CRD authorization and authentication
- Google Chrome browser installed on your local (controlling) machine
- Stable internet connection on both the remote Debian 13 machine and your local device
- System requirements for the remote machine:
- CPU: 64-bit (x86_64) processor
- RAM: 2 GB minimum, 4 GB or more recommended
- Disk: 20 GB minimum free space
- Basic comfort with the Linux terminal (every command is provided in full)
Step 1: Update Your Debian 13 System Before You Install Chrome Remote Desktop on Debian 13
Keeping your system current before installing any new package prevents dependency conflicts and ensures you are working with the latest security patches.
Verify sudo access
First, confirm your user has sudo privileges:
sudo whoami
Expected output: root
If the command fails, add your user to the sudo group manually:
su -
usermod -aG sudo your_username
exit
Log out and back in for the change to take effect.
Update and upgrade packages
sudo apt update && sudo apt upgrade -y
This command refreshes the package index (apt update) and then upgrades all installed packages to their latest versions (apt upgrade -y). If a kernel update was applied, reboot before continuing:
sudo reboot
After reboot, reconnect via SSH or log back into your terminal session.
Step 2: Install Google Chrome on Debian 13
Google Chrome is not required on the remote machine for Chrome Remote Desktop to work. However, having it available is useful for testing and for browser-based tasks during remote sessions. The CRD host daemon runs independently of any browser on the remote machine.
Method 1: Using extrepo (Recommended for Debian 13 Trixie)
Debian 13 supports extrepo, which cleanly manages external repositories:
sudo extrepo update
sudo extrepo enable google_chrome
sudo apt --update upgrade
sudo apt install google-chrome-stable -y
Method 2: Direct .deb download
curl -L -o google-chrome-stable_current_amd64.deb \
https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo apt install --assume-yes --fix-broken ./google-chrome-stable_current_amd64.deb
Verify the install completed:
google-chrome --version
Expected output: Google Chrome 12X.X.XXXX.XX
Note: Google Chrome is only available for amd64 (64-bit x86) systems. ARM and 32-bit architectures are not supported.
Step 3: Download and Install the Chrome Remote Desktop Package
This is the core step of the entire Chrome Remote Desktop on Debian 13 setup. Google provides the CRD host as a Debian .deb package maintained under their official Linux repository.
Add the Google CRD repository and install via APT (Recommended)
This method registers the Google repository in APT so you receive automatic updates to CRD in the future:
curl https://dl.google.com/linux/linux_signing_key.pub \
| sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/chrome-remote-desktop.gpg
echo "deb [arch=amd64] https://dl.google.com/linux/chrome-remote-desktop/deb stable main" \
| sudo tee /etc/apt/sources.list.d/chrome-remote-desktop.list
sudo apt-get update
sudo DEBIAN_FRONTEND=noninteractive \
apt-get install --assume-yes chrome-remote-desktop
The DEBIAN_FRONTEND=noninteractive flag suppresses keyboard layout prompts during the install. This is especially important on headless servers where no keyboard is physically attached.
Alternative: Install via direct .deb download
wget https://dl.google.com/linux/direct/chrome-remote-desktop_current_amd64.deb
sudo dpkg -i chrome-remote-desktop_current_amd64.deb
sudo apt-get install -f
The apt-get install -f command automatically resolves and installs any missing dependencies left over from the dpkg install.
Verify the installation
dpkg -l | grep chrome-remote-desktop
You should see a line beginning with ii, which means the package is correctly installed. The CRD host binary lives at /opt/google/chrome-remote-desktop/.
Step 4: Add Your User to the chrome-remote-desktop Group and Set Up a Desktop Environment
After installing the package, the CRD daemon restricts which system users can launch sessions using group-based access control. You must explicitly add your user to the chrome-remote-desktop group, or the service will fail silently.
Add your user to the group
sudo usermod -a -G chrome-remote-desktop $USER
Apply the new group membership in your current session without logging out:
newgrp chrome-remote-desktop
Verify the group was added:
groups $USER
The output should include chrome-remote-desktop among your user’s groups.
Install the XFCE desktop environment
Chrome Remote Desktop needs a desktop environment to render a GUI session. It creates its own virtual display (typically :20) separate from any physical screen. XFCE is the recommended choice because it is lightweight, stable, and has excellent compatibility with CRD over slow or moderate network connections.
sudo DEBIAN_FRONTEND=noninteractive \
apt install --assume-yes xfce4 desktop-base dbus-x11 xscreensaver
XScreenSaver is required because the XFCE default screen locker (Light Locker) does not work with Chrome Remote Desktop. Light Locker causes a blank screen that cannot be unlocked during a remote session.
Optional: Install the full XFCE desktop suite with all standard applications:
sudo apt install --assume-yes task-xfce-desktop
Configure the CRD session file
The session file at /etc/chrome-remote-desktop-session tells the CRD daemon which desktop environment to launch for every incoming connection. This file must exist and must point to the correct session binary:
sudo bash -c 'echo "exec /etc/X11/Xsession /usr/bin/xfce4-session" > /etc/chrome-remote-desktop-session'
Verify the file was written correctly:
cat /etc/chrome-remote-desktop-session
Expected output: exec /etc/X11/Xsession /usr/bin/xfce4-session
If this file is missing or empty, every remote session will connect but show only a black screen.
Disable the display manager (headless setups only)
If your Debian 13 machine runs as a server with no physical monitor, disable the display manager to prevent it from conflicting with CRD’s virtual display:
sudo systemctl disable lightdm.service
Skip this step if you are running a full desktop installation that you also use locally.
Step 5: Authorize Chrome Remote Desktop with Your Google Account
This step links your Debian 13 machine to your Google Account using a secure, time-limited authorization code generated by Google’s web interface.
On your local machine (Chrome browser):
- Open Google Chrome and navigate to:
https://remotedesktop.google.com/headless - Sign in with your Google Account if prompted
- Click Begin, then Next, then Authorize
- Allow Chrome Remote Desktop to access your account
- The page will display a command that looks similar to this:
DISPLAY= /opt/google/chrome-remote-desktop/start-host \
--code="4/xxxxxxxxxxxxxxxxxxxxxxxx" \
--redirect-url="https://remotedesktop.google.com/_/oauthredirect" \
--name=$(hostname)
On your Debian 13 machine (terminal):
Copy the full command from the browser and paste it directly into your terminal. Run it immediately.
When prompted:
- Enter a PIN of at least 6 digits — this acts as an additional password for every remote connection
- Confirm the PIN by entering it again
Important: The authorization code is single-use and expires within a few minutes. If you wait too long before running the command, return to remotedesktop.google.com/headless and generate a new one.
You may see benign error messages like No net_fetcher during this step. These are informational only and do not affect functionality.
Step 6: Start the Chrome Remote Desktop Service and Connect Remotely
With everything configured, it is time to start the CRD service and make your first remote connection.
Start and enable the service
sudo systemctl start chrome-remote-desktop@$USER
sudo systemctl enable chrome-remote-desktop@$USER
The enable flag makes the service start automatically every time Debian 13 boots.
Check service status
sudo systemctl status chrome-remote-desktop@$USER
Expected output includes:
Active: active (running) since [date/time]
If the status shows failed or inactive, check the logs for details:
journalctl -u chrome-remote-desktop@$USER -f
Connect from your local machine
- On your local device, open Google Chrome
- Navigate to
https://remotedesktop.google.com/access - Sign in with the same Google Account used during authorization
- Your Debian 13 machine will appear in the Remote Devices list by its hostname
- Click the machine name, enter your 6-digit PIN, and click the arrow
- The XFCE desktop will load in your browser — full GUI access to your Debian 13 machine
You can also connect using the Chrome Remote Desktop app on Android or iOS for mobile access from anywhere.
Performance tip: For the best experience, use a wired Ethernet connection on the Debian 13 machine. Close unused background processes to keep RAM available for the remote session rendering.
How to Uninstall Chrome Remote Desktop on Debian 13
If you need to remove Chrome Remote Desktop cleanly, follow these steps in order:
sudo systemctl stop chrome-remote-desktop@$USER
sudo systemctl disable chrome-remote-desktop@$USER
sudo apt remove chrome-remote-desktop -y
sudo apt autoremove -y
sudo rm /etc/apt/sources.list.d/chrome-remote-desktop.list
sudo rm /etc/apt/trusted.gpg.d/chrome-remote-desktop.gpg
sudo rm /etc/chrome-remote-desktop-session
sudo apt update
This removes the package, its repository entry, the signing key, and the session file completely from your system.
Troubleshooting Chrome Remote Desktop on Debian 13
Even with a clean setup, a few common issues can appear. Here are the most frequent problems and their fixes.
Problem 1: CRD service fails to start
Symptom: systemctl status shows failed or the service exits immediately.
Cause: Your user is not a member of the chrome-remote-desktop group.
Fix:
sudo usermod -a -G chrome-remote-desktop $USER
newgrp chrome-remote-desktop
sudo systemctl restart chrome-remote-desktop@$USER
Problem 2: Black screen after connecting
Symptom: The connection succeeds but only a black or blank screen appears.
Cause: The session file is missing, empty, or pointing to an uninstalled desktop environment.
Fix: Verify the session file content and reinstall XFCE if needed:
cat /etc/chrome-remote-desktop-session
sudo apt install --reinstall xfce4 -y
sudo systemctl restart chrome-remote-desktop@$USER
Problem 3: Authorization code expired or invalid
Symptom: Running the start-host command returns an authorization error.
Cause: The code from remotedesktop.google.com/headless is single-use and expires quickly.
Fix: Return to https://remotedesktop.google.com/headless, generate a new command, and run it immediately without delay.
Problem 4: Dependency errors during dpkg installation
Symptom: dpkg -i fails with unmet dependency errors.
Fix:
sudo apt-get install -f
This command automatically fetches and installs any packages that dpkg could not resolve on its own.
Problem 5: Service crashes or disconnects frequently
Symptom: Remote sessions drop unexpectedly or the service keeps restarting.
Fix: Restart the service and review recent logs:
sudo systemctl restart chrome-remote-desktop@$USER
journalctl SYSLOG_IDENTIFIER=chrome-remote-desktop -e
Frequent disconnects are usually caused by network instability on either end or a misconfigured screensaver locking the session.
Congratulations! You have successfully installed Chrome Remote Desktop. Thanks for using this tutorial for installing the Chrome Remote Desktop on Debian 13 “Trixie” system. For additional help or useful information, we recommend you check the official Chrome website.