virssh - allow users to control their libvirt VM through SSH.
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
neingeist 9af9870e31 improve readme 13 years ago
Makefile add makefile 13 years ago
README.md improve readme 13 years ago
virssh use env to get user/hostname 13 years ago

README.md

virssh - allow users to control their libvirt VM through SSH.

virssh is a simple wrapper around sudo and virsh that allows users to control their libvirt VM(s) through SSH. Currently supported is starting/stopping VMs, serial console and listing all VMs to get their status.

Configuration:

  1. Create a user "vmadmin".

  2. Give that user sudo permissions for calling virsh, so she may control (all) VMs:

    Defaults:vmadmin !requiretty vmadmin ALL = (root) NOPASSWD: /usr/bin/virsh

  3. For every one of your users, create a line in vmadmin's .ssh/authorized_keys:

    command="/usr/local/bin/virssh myfancyvm",permitopen="localhost:5915",no-X11-forwarding,no-agent-forwarding ssh-rsa AAAAB...== myfancyuser@hjome

    Instead of specifying only one VM "myfancyvm", you may also specify multiple VMs by regex, for example "(myfancyvm|myothervm)".

Usage:

The user may now control her VM using the following commands:

ssh -t vmadmin@vmserver sudo virsh list
ssh -t vmadmin@vmserver sudo virsh console myfancyvm
ssh -t vmadmin@vmserver sudo virsh destroy myfancyvm
ssh -t vmadmin@vmserver sudo virsh shutdown myfancyvm
ssh -t vmadmin@vmserver sudo virsh start myfancyvm
ssh -t vmadmin@vmserver sudo virsh start myfancyvm --console

If you use a "permitopen" directive, that user may also use the console command to keep an SSH tunnel open to use VNC.