77

I have a QEMU/KVM virtual machine created with Virtual Machine Manager.

I would like to be able to copy text on the host and paste it into the guest, and the other way around too.

How can I share the clipboard between the host and the guest?

elopio
  • 2,763
  • 1
  • 19
  • 20

5 Answers5

89

The solution is simple. Just install the package spice-vdagent in the guest virtual machine:

sudo apt install spice-vdagent

The clipboard is automatically shared - we can copy and paste between the host and the guest.

elopio
  • 2,763
  • 1
  • 19
  • 20
15

For my Linux Mint 18.2 Sonya machine timelf123 provided the answer:

  • In my Windows guest (Windows 7) downloaded and installed spice-guest-tools-latest.exe.
  • Before That, back in my QEMU/KVM Virtual Machine Manager I had to switch the guest machine's display to Spice.
  • Before That, back in my Linux host I had to fire up Synaptic Package Manager and install gir1.2-spice-client-gtk-3.0.
Melebius
  • 11,750
8

In case the question pops up - what if it's Ubuntu server or similar?

Don't run around in circles - install openssh-server on the vm, and when you ssh in you cut and paste into your favourite terminal.

6

In year 2021, qemu uses qemu-vdagent chardev for copy&paste, which turns off clipboard by default, so simply installing spice-vdagent package in guest OS does not work.

The solution of 2021 is:

  1. Install spice-vdagent package as the current answer said,

  2. Have qemu support spice (--enable-spice --enable-spice-protocol in ./configure option),

  3. Launch qemu using:

    qemu-system-x86_64 [ ... ] \
      -chardev qemu-vdagent,id=ch1,name=vdagent,clipboard=on \
      -device virtio-serial-pci \
      -device virtserialport,chardev=ch1,id=ch1,name=com.redhat.spice.0
    

    P.S. A side effect on my qemu is that the mouse moves more smoothly thanks to vdagent.

Reference: https://www.kraxel.org/blog/2021/05/qemu-cut-paste/

Greenonline
  • 2,182
zzzhhh
  • 307
0

If you want to copy & paste to/from a shell console, the easiest way might be to access the virtual machine via SSH:

  1. Make sure that an SSH service is installed and running inside the VM. (systemctl status sshd)
  2. Run the VM with appropriate network settings, for example with port forwarding: Add -net nic -net user,hostfwd=tcp::2222-:22
  3. Log in to the VM with ssh, using this port: ssh -p 2222 myuser@localhost
quazgar
  • 170