-
Notifications
You must be signed in to change notification settings - Fork 541
Setup SSH Authorization
-
Create SSH private key and ssh config options (On system where WebVirtMgr is installed):
$ sudo su - nginx -s /bin/bash(nginx default user might be different than "nginx", "www-data" might be used : check nginx.conf)$ ssh-keygenGenerating public/private rsa key pair.Enter file in which to save the key (path-to-id-rsa-in-nginx-home):Just hit Enter here!$ touch ~/.ssh/config && echo -e "StrictHostKeyChecking=no\nUserKnownHostsFile=/dev/null" >> ~/.ssh/config$ chmod 0600 ~/.ssh/config -
Add webvirt user (on qemu-kvm/libvirt host server) and add it to the proper group :
$ sudo adduser webvirtmgr$ sudo passwd webvirtmgr$ sudo usermod -G libvirtd -a webvirtmgr
on Debian the command looks like (groupname has no d appended)
$ sudo usermod -G libvirt -a webvirtmgr
-
Back to webvirtmgr host and copy public key to qemu-kvm/libvirt host server:
$ sudo su - nginx -s /bin/bash$ ssh-copy-id webvirtmgr@qemu-kvm-libvirt-hostOr if you changed the default SSH port use:
$ ssh-copy-id -P YOUR_SSH_PORT webvirtmgr@qemu-kvm-libvirt-host
Now you can test the connection by entering:
$ ssh webvirtmgr@qemu-kvm-libvirt-host
For a non-standard SSH port use:
$ ssh -P YOUR_SSH_PORT webvirtmgr@qemu-kvm-libvirt-host
You should connect without entering a password.
- Set up permissions to manage libvirt (on qemu-kvm/libvirt host server):
On Ubuntu:
$ sudo adduser webvirtmgr libvirtd
Fedora, CentOS:
Create file /etc/polkit-1/localauthority/50-local.d/50-libvirt-remote-access.pkla (permissions for user webvirtmgr):#
[Remote libvirt SSH access]
Identity=unix-user:webvirtmgr
Action=org.libvirt.unix.manage
ResultAny=yes
ResultInactive=yes
ResultActive=yes
Find directory for Apache user (Ubuntu,Debian: "www-data", Fedora,CentOS: "apache"):
$ sudo cat /etc/passwd | grep apache | tr ":" " " | awk '{print $6}'
/var/www
Create .ssh directory for Apache user:
$ sudo mkdir /var/www/.ssh
$ sudo chmod 700 /var/www/.ssh
$ sudo vi /var/www/.ssh/config
File /var/www/.ssh/config must contain:
StrictHostKeyChecking=no
UserKnownHostsFile=/dev/null
Create SSH public key in folder /var/www/.ssh/id_rsa:
$ sudo ssh-keygen
Enter file in which to save the key (/root/.ssh/id_rsa): /var/www/.ssh/id_rsa
Change owner and permissions for folder /var/www/.ssh (Ubuntu: "www-data."; Fedora,CentOS: "apache."):
$ sudo chmod -R 0600 /var/www/.ssh/config
$ sudo chown -R apache:apache /var/www/.ssh
Create user for manager libvirt:
$ sudo adduser webvirtmgr
Copy /var/www/.ssh/id_rsa.pub to folder (on server) .ssh/authorized_keys user webvirtmgr:
$ sudo mkdir /home/webvirtmgr/.ssh
$ sudo chmod 700 /home/webvirtmgr/.ssh
$ sudo cp /var/www/.ssh/id_rsa.pub /home/webvirtmgr/.ssh/authorized_keys
$ sudo chmod 0600 /home/webvirtmgr/.ssh/authorized_keys
$ sudo chown -R webvirtmgr:webvirtmgr /home/webvirtmgr/.ssh
Set up permissions to manage libvirt
Ubuntu:
$ sudo adduser webvirtmgr libvirtd
Fedora, CentOS:
Create file /etc/polkit-1/localauthority/50-local.d/50-libvirt-remote-access.pkla (permissions for user webvirtmgr):
[Remote libvirt SSH access]
Identity=unix-user:webvirtmgr
Action=org.libvirt.unix.manage
ResultAny=yes
ResultInactive=yes
ResultActive=yes