Skip to navigationSkip to content
libvirtd docs
Commands

Manual nav

Search `/` or jump with `g` / `G`.

Portal

  • Home manual
  • Command explorer
Foundations6 sections
  • Overview1
  • Installation2
  • Platform1
  • Concepts5
  • Domains2
  • Domain XML2
Subsystems9 sections
  • Identity1
  • Automation2
  • Daemons3
  • virsh3
  • Networking5
  • Storage4
  • Security3
  • Observability2
  • Remote Access1
Operations6 sections
  • Migration2
  • Backup2
  • Performance3
  • Recovery1
  • Troubleshooting2
  • References2

/ search · g top · G quickstart

manvirshReviewed March 6, 2026

virsh connection URIs

The URI tells virsh which driver, transport, host, and privilege scope to use. Most confusion comes from using the right command against the wrong URI. Common URI families | URI | Meaning | Typical use | | | | | | qemu:/

virshuriqemu:///systemqemu:///session

The URI tells virsh which driver, transport, host, and privilege scope to use. Most confusion comes from using the right command against the wrong URI.

Common URI families

URIMeaningTypical use
qemu:///systemLocal system instanceHost-wide management, root-owned guests, shared networks and pools
qemu:///sessionPer-user session instanceUnprivileged labs or desktop testing
qemu+ssh://root@hv-a/systemRemote over SSHSimple secure remote administration
qemu+tls://hv-a/systemRemote over TLSManaged remote API access with certificates

System URI

Use qemu:///system for host-wide operations that need the system instance and its shared guest, network, and storage state.

Session URI

Use qemu:///session for unprivileged per-user labs where system-wide bridges and pools are not the target.

Remote SSH URI

Use the SSH transport when you want secure remote access without standing up certificate listeners first.

Remote TLS URI

Use the TLS transport when the host exposes a managed remote API endpoint and certificate-based identity matters.

The most important distinction

qemu:///system and qemu:///session do not point at the same state. A guest visible in one may not exist in the other.

BASH
virsh -c qemu:///system list --all
virsh -c qemu:///session list --all

Common mistakes

  • Creating a guest in session scope and then looking for it in system scope.
  • Connecting over SSH and assuming TLS settings are relevant.
  • Forgetting that remote URIs usually expose host policy issues such as polkit or SASL earlier than local commands do.

Fast validation

BASH
virsh -c qemu:///system uri
virsh -c qemu+ssh://root@hv-a/system hostname
virsh -c qemu+tls://hv-a/system capabilities

Related

  • libvirtd overview and the compatibility daemon
  • Common virsh workflows
  • Remote TLS, TCP, and auth basics

On this page

  • Common URI families
  • System URI
  • Session URI
  • Remote SSH URI
  • Remote TLS URI
  • The most important distinction
  • Common mistakes
  • Fast validation