How to Install TeamViewer on Debian 13, 12 and 11

Last updated Wednesday, May 20, 2026 11:29 am Joshua James 9 min read 1 comment

TeamViewer on Debian is cleanest as an official APT repository install: import TeamViewer’s current signing key, create a DEB822 source file, then install either the full TeamViewer desktop client or the TeamViewer Host endpoint with APT. That keeps installation and updates under normal package-manager control instead of making a one-off DEB download the main path.

Use the full teamviewer package when the Debian desktop will start or receive support sessions from a graphical login. Use teamviewer-host when the machine mainly needs unattended remote access. The two packages conflict with each other, so choose one before installing. For command-line-only remote administration where a graphical remote-control tool is not needed, install OpenSSH on Debian instead.

Install TeamViewer from the Official APT Repository

The official repository method uses https://linux.teamviewer.com/deb, a dedicated keyring, and a DEB822 source file under /etc/apt/sources.list.d/. It is the best default when you want a clean APT-managed install on Debian.

Confirm Debian Support and Architecture

Check the Debian release and package architecture before adding the repository:

. /etc/os-release
printf 'Debian %s (%s)\n' "$VERSION_ID" "${VERSION_CODENAME:-unknown}"
dpkg --print-architecture

TeamViewer’s current APT repository publishes packages for amd64, arm64, armhf, and i386. The source setup checks the local architecture before writing the APT source, so it will stop instead of creating a source entry for an unsupported architecture.

TeamViewer’s supported operating systems page lists Debian 12 and Debian 11 for TeamViewer Classic. If your system prints Debian 13, check TeamViewer’s supported operating systems page before relying on it for managed or business-critical remote access.

Install APT Prerequisites

Refresh APT metadata, then install the tools needed to download and dearmor the TeamViewer signing key:

sudo apt update
sudo apt install curl ca-certificates gnupg

These commands use sudo for package-manager tasks that require root privileges. If your account is not allowed to use sudo, set that up first with the Debian sudo users guide.

Import the TeamViewer Signing Key

Inspect the current TeamViewer repository key before installing it:

curl -fsSL -o teamviewer.asc https://linux.teamviewer.com/pubkey/currentkey.asc
gpg --show-keys --with-fingerprint teamviewer.asc

The current TeamViewer Linux repository key should show fingerprint AB29 85BD E164 897B A46E A69A 234F AACB 575B 15D1. After confirming the key, install it as a binary keyring for APT:

rm -f teamviewer.gpg
gpg --dearmor -o teamviewer.gpg teamviewer.asc
sudo install -o root -g root -m 0644 teamviewer.gpg /usr/share/keyrings/teamviewer.gpg
rm -f teamviewer.asc teamviewer.gpg

Create the TeamViewer APT Source

Create a DEB822 source file for the TeamViewer stable repository. The guard prevents accidental setup on architectures that TeamViewer’s repository metadata does not publish:

TEAMVIEWER_ARCH="$(dpkg --print-architecture)"
case "$TEAMVIEWER_ARCH" in
  amd64|arm64|armhf|i386) ;;
  *) printf 'Unsupported TeamViewer architecture: %s\n' "$TEAMVIEWER_ARCH"; exit 1 ;;
esac

cat <<EOF | sudo tee /etc/apt/sources.list.d/teamviewer.sources >/dev/null
Types: deb
URIs: https://linux.teamviewer.com/deb
Suites: stable
Components: main
Architectures: $TEAMVIEWER_ARCH
Signed-By: /usr/share/keyrings/teamviewer.gpg
EOF

This source file keeps TeamViewer’s signing key scoped to TeamViewer’s repository instead of adding trust globally.

Refresh APT and Check TeamViewer Packages

Refresh package metadata and confirm APT can see both TeamViewer packages from the official repository:

sudo apt update
apt-cache policy teamviewer teamviewer-host

The candidate should come from https://linux.teamviewer.com/deb. If APT reports a Signed-By conflict here, skip to the troubleshooting section and remove duplicate old TeamViewer source files before continuing.

Choose the TeamViewer Package

The full client and Host package install from the same official source but serve different remote-access roles. TeamViewer’s Linux installation documentation also treats them as separate DEB packages.

PackageWhat It InstallsBest ForUpdate BehaviorImportant Trade-off
teamviewerFull TeamViewer desktop clientAttended support, outgoing connections, and normal desktop useAPT updates from TeamViewer’s official repositoryConflicts with teamviewer-host
teamviewer-hostTeamViewer Host endpointUnattended access to a workstation or server that should stay reachableAPT updates from TeamViewer’s official repositoryConflicts with the full teamviewer package

Most desktop users should install teamviewer. Choose teamviewer-host only when the Debian machine is mainly a managed endpoint that other TeamViewer users connect to.

Install only one TeamViewer package on a normal Debian system. The full client and Host endpoint declare package conflicts with each other.

Install TeamViewer with APT

Install the full TeamViewer client for attended support, outgoing connections, and normal desktop use:

sudo apt install teamviewer

Install TeamViewer Host instead when the system should be an unattended remote-access endpoint:

sudo apt install teamviewer-host

Verify TeamViewer on Debian

Confirm the installed package state for the full client:

dpkg-query -W -f='${db:Status-Abbrev} ${binary:Package} ${Version}\n' teamviewer
teamviewer --version
apt-cache policy teamviewer
grep -R "linux.teamviewer.com/deb" /etc/apt/sources.list.d/teamviewer.sources

For TeamViewer Host, check the Host package:

dpkg-query -W -f='${db:Status-Abbrev} ${binary:Package} ${Version}\n' teamviewer-host
teamviewer --version
apt-cache policy teamviewer-host
grep -R "linux.teamviewer.com/deb" /etc/apt/sources.list.d/teamviewer.sources

The package status should begin with ii, which means Debian considers the package installed. The teamviewer --version command should print the installed TeamViewer 15.x version.

Optional TeamViewer Installation Methods

Use one repository method at a time. Do not keep the manual DEB822 source, an extrepo-generated source, and the package-owned direct-DEB source enabled together, because duplicate TeamViewer sources can create APT trust conflicts.

Install TeamViewer with extrepo

Use extrepo when you already manage third-party Debian repositories through Debian’s external repository catalog. The extrepo metadata includes TeamViewer’s stable repository as teamviewer_default, but it still targets the same TeamViewer packages, so it is an alternative to the manual DEB822 source method rather than an extra step after it.

The current extrepo TeamViewer metadata covers amd64, i386, and armhf. Use the manual APT source method when you need arm64 coverage.

Install extrepo and enable the non-free policy required for TeamViewer’s proprietary packages. The sed command edits the existing extrepo configuration line in place:

sudo apt update
sudo apt install extrepo
sudo sed -i 's/^# - non-free/- non-free/' /etc/extrepo/config.yaml

Enable the TeamViewer stable repository, refresh APT, then install either the full client or Host package:

sudo extrepo enable teamviewer_default
sudo apt update
sudo apt install teamviewer

For TeamViewer Host, replace the final install command with:

sudo apt install teamviewer-host

Confirm the extrepo-generated source and package candidate:

grep -R "linux.teamviewer.com/deb" /etc/apt/sources.list.d/extrepo_teamviewer_default.sources
apt-cache policy teamviewer teamviewer-host

Install TeamViewer from the Official DEB Download

Use the direct DEB download when you prefer TeamViewer’s package to bootstrap its own APT source file. This method is official, but it installs a package-owned legacy /etc/apt/sources.list.d/teamviewer.list file instead of a manual DEB822 source.

These direct-download commands use the common amd64 package. For arm64, armhf, or another architecture published by TeamViewer, use the matching DEB from the TeamViewer Linux download page.

Install the basic download tools if you skipped the main repository method:

sudo apt update
sudo apt install curl ca-certificates

Download the full TeamViewer client for a normal Debian desktop:

curl -fL -o teamviewer_amd64.deb https://download.teamviewer.com/download/linux/teamviewer_amd64.deb

The -fL flags make curl fail on HTTP errors and follow TeamViewer’s maintained redirect to the current versioned package. The -o option saves the download with a stable local filename that is easy to reuse in the install command. See the curl command guide for more download examples.

For a TeamViewer Host endpoint instead, download the Host package:

curl -fL -o teamviewer-host_amd64.deb https://download.teamviewer.com/download/linux/teamviewer-host_amd64.deb

Inspect the downloaded package before installing it:

dpkg-deb -f teamviewer_amd64.deb Package Version Architecture Conflicts

For TeamViewer Host, inspect the Host package instead:

dpkg-deb -f teamviewer-host_amd64.deb Package Version Architecture Conflicts

Install the full client from the local DEB file:

sudo apt install ./teamviewer_amd64.deb

Or install TeamViewer Host from the local DEB file:

sudo apt install ./teamviewer-host_amd64.deb

Launch and Get Started with TeamViewer on Debian

A graphical Debian session can launch TeamViewer from the applications menu by searching for TeamViewer. The terminal launcher is also available:

teamviewer

The first launch may ask you to accept TeamViewer’s license terms and sign in or continue with the available personal-use workflow. TeamViewer’s free license is for personal use; business, client-support, or revenue-generating use requires the appropriate TeamViewer license.

On GNOME, open Activities and search for TeamViewer. On KDE Plasma, use the Application Launcher. On Xfce, check the Internet category if the desktop menu sorts applications by type.

Check Your TeamViewer ID and Status

Use teamviewer info to see the local TeamViewer ID and daemon status from the terminal:

teamviewer info

The TeamViewer ID is the identifier another TeamViewer user needs when they connect to this Debian machine. If the command reports that the daemon is not running, restart it from the terminal:

sudo teamviewer daemon restart
teamviewer info

Daemon start, stop, restart, enable, and disable actions change a system service, so run those actions with sudo when TeamViewer cannot elevate through your desktop session.

List the available TeamViewer command-line actions when you need to check the current syntax on your installed version:

teamviewer help

Configure Unattended Access

Use TeamViewer’s setup assistant when the Debian device should be assigned to your TeamViewer account for unattended access. TeamViewer’s headless Linux documentation lists the same command-line path for SSH and console-only setups:

teamviewer setup

The setup assistant walks through account assignment and device registration. For password-based unattended access, the current TeamViewer CLI expects the password as an argument. Use Bash’s read command to store it in a temporary variable first, which keeps the secret out of shell history:

IFS= read -rsp 'TeamViewer password: ' TEAMVIEWER_PASSWORD
printf '\n'
sudo teamviewer passwd "$TEAMVIEWER_PASSWORD"
unset TEAMVIEWER_PASSWORD

Use at least eight characters. The variable form avoids saving the password in your shell history, but local administrators may still be able to observe process arguments briefly while the command runs. Prefer account assignment through teamviewer setup on shared systems when that workflow fits your deployment.

Use Additional TeamViewer CLI Commands

TeamViewer installs a small command-line wrapper for service control, repository checks, support bundles, and managed-device assignment. Use teamviewer help on the installed system to confirm the exact options available in your current version.

CommandPurposeWhen to Use It
teamviewer daemon statusShows whether the TeamViewer daemon is activeBefore troubleshooting missing IDs or incoming connections
sudo teamviewer daemon startStarts the daemonWhen the daemon is stopped but should accept connections
sudo teamviewer daemon stopStops the daemonWhen temporarily disabling TeamViewer without uninstalling it
sudo teamviewer daemon enableEnables daemon startup at bootFor unattended access endpoints that must stay reachable
sudo teamviewer daemon disableDisables daemon startup at bootFor occasional-use desktops where TeamViewer should not always run
teamviewer repoPrints the package-owned TeamViewer repo file stateWhen using the direct DEB method or TeamViewer’s own repo command
teamviewer repo listLists TeamViewer packages visible to APTAfter sudo apt update, when confirming repository visibility
teamviewer ziplogCreates a TeamViewer support log archiveWhen collecting logs for a support request
sudo teamviewer assignment --id=YOUR_ASSIGNMENT_IDAssigns the device with a rollout assignment IDFor managed deployments where you already have a TeamViewer assignment ID
sudo teamviewer unassignRemoves managed-device assignmentBefore handing off or decommissioning a managed endpoint

Account for Wayland and Xorg Sessions

Debian GNOME systems often use Wayland by default. TeamViewer’s support notes still recommend X11/Xorg for the best incoming-connection experience while Wayland support remains experimental. If remote control connects but screen capture or input behaves poorly under Wayland, sign out and choose an Xorg session from the login screen when your desktop offers one.

On Debian 13 GNOME systems, the Xorg login session can depend on the gnome-session-xsession package. Debian 12 and Debian 11 commonly provide the GNOME Xorg session through the normal gnome-session package set.

Update TeamViewer on Debian

TeamViewer updates arrive through APT after one TeamViewer source is enabled. Update the full client with:

sudo apt update
sudo apt install --only-upgrade teamviewer

Update TeamViewer Host with the Host package name:

sudo apt update
sudo apt install --only-upgrade teamviewer-host

Check the enabled TeamViewer source when updates do not appear:

grep -R "linux.teamviewer.com/deb" /etc/apt/sources.list.d 2>/dev/null
apt-cache policy teamviewer teamviewer-host

If you used the direct DEB method, teamviewer repo and teamviewer repo list can also inspect the package-owned teamviewer.list source. The normal stable channel should be enough for most Debian systems. Keep preview or development channels out of production unless TeamViewer support or your deployment policy requires them.

Remove TeamViewer from Debian

Remove the package that matches the variant you installed. For the full client, purge teamviewer:

sudo apt purge teamviewer

For TeamViewer Host, purge teamviewer-host:

sudo apt purge teamviewer-host

Review and remove dependencies that APT reports as no longer needed:

sudo apt autoremove

Remove the TeamViewer source files for the method you used. For the manual DEB822 method, remove the source file and keyring:

sudo rm -f /etc/apt/sources.list.d/teamviewer.sources
sudo rm -f /usr/share/keyrings/teamviewer.gpg

For extrepo, disable the repository and remove the generated source and key files only after confirming no other TeamViewer source needs them:

if command -v extrepo >/dev/null 2>&1; then
  sudo extrepo disable teamviewer_default || true
fi
sudo rm -f /etc/apt/sources.list.d/extrepo_teamviewer_default.sources
sudo rm -f /var/lib/extrepo/keys/teamviewer_default.asc

For the direct DEB method, remove TeamViewer’s package-owned source file and keyring if package purge left them behind:

sudo rm -f /etc/apt/sources.list.d/teamviewer.list
sudo rm -f /usr/share/keyrings/teamviewer-keyring.gpg

Refresh APT after removing the package source:

sudo apt update

Confirm neither TeamViewer package remains installed:

dpkg-query -W -f='${db:Status-Abbrev} ${binary:Package}\n' teamviewer teamviewer-host 2>/dev/null

No line beginning with ii should remain.

Remove Optional User Profile Data

Package removal does not necessarily remove per-user TeamViewer settings, cached state, or local profile data. Inspect likely user-owned TeamViewer paths first:

find "$HOME/.config" "$HOME/.local/share" "$HOME/.cache" -maxdepth 1 -iname 'teamviewer*' -print 2>/dev/null

The next command permanently deletes local TeamViewer profile and cache data for your user account. Back up any settings or connection information you still need before running it.

Delete the common user-owned TeamViewer directories only when you no longer need that local state:

rm -rf "$HOME/.config/teamviewer" "$HOME/.local/share/teamviewer" "$HOME/.cache/teamviewer"

Troubleshoot TeamViewer on Debian

APT Reports Conflicting Signed-By Values

Older extrepo, direct DEB, or manual TeamViewer repository instructions can leave multiple source files for the same TeamViewer repository. APT can reject duplicate sources when they use different Signed-By key paths.

Find every TeamViewer repository entry:

grep -R "linux.teamviewer.com/deb" /etc/apt/sources.list /etc/apt/sources.list.d 2>/dev/null

Keep only the source method you want to use. If you are keeping the manual DEB822 source from the main method, remove the package-owned and extrepo-generated source files:

if command -v extrepo >/dev/null 2>&1; then
  sudo extrepo disable teamviewer_default || true
  sudo extrepo disable teamviewer_preview || true
fi
sudo rm -f /etc/apt/sources.list.d/teamviewer.list
sudo rm -f /etc/apt/sources.list.d/extrepo_teamviewer_default.sources
sudo rm -f /etc/apt/sources.list.d/extrepo_teamviewer_preview.sources
sudo rm -f /usr/share/keyrings/teamviewer-keyring.gpg
sudo rm -f /var/lib/extrepo/keys/teamviewer_default.asc
sudo rm -f /var/lib/extrepo/keys/teamviewer_preview.asc
sudo apt update

If you are keeping the direct DEB package-owned source instead, keep /etc/apt/sources.list.d/teamviewer.list and remove /etc/apt/sources.list.d/teamviewer.sources instead.

Use the broader Debian extrepo management guide when you need to audit several external repositories, not just TeamViewer.

Downloaded Package Does Not Match the System Architecture

A local DEB install can fail when the package architecture and Debian architecture do not match. Compare both values:

dpkg --print-architecture
dpkg-deb -f teamviewer_amd64.deb Architecture

If the values differ, remove the downloaded file and download the correct DEB package from TeamViewer’s Linux download page.

TeamViewer ID Is Missing or the Daemon Is Stopped

The daemon must be running before the local device can accept incoming connections. Check and restart it with TeamViewer’s own daemon commands:

teamviewer daemon status
sudo teamviewer daemon restart
teamviewer info

If teamviewer info still cannot show an ID, confirm the machine has internet access and that a firewall, proxy, or network policy is not blocking TeamViewer’s outbound connection.

Incoming Control Works Poorly on Wayland

Wayland support is still a moving target for TeamViewer incoming remote control. If the remote viewer connects but cannot control the session reliably, sign out and select an Xorg session from the desktop login screen, then reconnect after logging back in.

Create a TeamViewer Support Log Archive

When TeamViewer support asks for logs, create the standard support archive from the installed command-line wrapper:

teamviewer ziplog

For launch or daemon problems, TeamViewer can add process and environment details. Inspect the archive before sharing it, because the extended bundle may include sensitive local information:

sudo teamviewer ziplog plus

Conclusion

TeamViewer is installed on Debian from the official DEB package, with TeamViewer’s package-owned APT repository ready for future updates. Keep the full client for attended desktop support, choose TeamViewer Host for unattended endpoints, and verify vendor support before depending on a newer Debian release for managed remote access.

Follow LinuxCapable

Want more LinuxCapable guides in Google?

Add LinuxCapable as a preferred source so Google can show more of our fresh Linux tutorials in Top Stories and From your sources when relevant.

Add LinuxCapable as a preferred source on Google
Search LinuxCapable

Need another guide?

Search LinuxCapable for package installs, commands, troubleshooting, and follow-up guides related to what you just read.

Found this guide useful?

Support LinuxCapable to keep tutorials free and up to date.

Buy me a coffeeBuy me a coffee

1 thought on “How to Install TeamViewer on Debian 13, 12 and 11”

Before commenting, please review our Comments Policy.
Formatting tips for your comment

You can use basic HTML to format your comment. Useful tags currently allowed in published comments:

You type Result
<code>command</code> command
<strong>bold</strong> bold
<em>italic</em> italic
<blockquote>quote</blockquote> quote block

Got a Question or Feedback?

We read and reply to every comment - let us know how we can help or improve this guide.

Let us know you are human: