[libvirt-users] How can I open a libvirt remote connection with ssh

Daniel P. Berrange berrange at redhat.com
Thu Apr 11 09:54:36 UTC 2013


On Thu, Apr 11, 2013 at 09:45:18AM +0000, Wangkai (Kevin,C) wrote:
> Hi,
> 
> When I use 'virConnectOpenAuth' function to connect to '192.168.1.102' libvirtd with ssh,
> Code below,  the screen print the dialog "root at 192.168.1.102's password:" ,  and only
> After I type the password, the connection can be created.

Libvirt has to spawn an external SSH process for +ssh URIs, so we can't hook
it up into our auth callbacks.

> How can I connect to libvirtd with ssh automatically? No need to type the password manually.

You need to setup SSH public keys + SSH agent

> 
> char *au[2] = {"root", "xxxx"};
> virConnectAuth auth = {
>                 credTypes,
>                 sizeof(credTypes) / sizeof(int),
>                 virConnCb,/* callback function, actually was not be called after connect*/
>                 au /* user and password */
>             };
> conn = virConnectOpenAuth("qemu+ssh://192.168.1.102/system", &auth, 0);

virConnectOpenAuth() doesn't do anything useful for '+ssh' URIs.

There is however a alternative  'libssh2' URI that does use the
callbacks. eg   qemu+libssh2://hostname/system

This is less tested & potentially buggy, but it might be ok for your needs

Regards,
Daniel
-- 
|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org       -o-       http://live.gnome.org/gtk-vnc :|




More information about the libvirt-users mailing list