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

Hi, When I use 'virConnectOpenAuth' function to connect to '192.168.1.102' libvirtd with ssh, Code below, the screen print the dialog "root@192.168.1.102's password:" , and only After I type the password, the connection can be created. How can I connect to libvirtd with ssh automatically? No need to type the password manually. 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); Thanks, Kevin

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@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 :|

-----Original Message----- From: Daniel P. Berrange [mailto:berrange@redhat.com] Sent: Thursday, April 11, 2013 5:55 PM To: Wangkai (Kevin,C) Cc: libvirt-users@redhat.com Subject: Re: [libvirt-users] How can I open a libvirt remote connection with ssh
Hi,
When I use 'virConnectOpenAuth' function to connect to '192.168.1.102' libvirtd with ssh, Code below, the screen print the dialog "root@192.168.1.102's
On Thu, Apr 11, 2013 at 09:45:18AM +0000, Wangkai (Kevin,C) wrote: 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.
[Wangkai (Kevin,C)] Which type of URI can be hooked by auth callback? Qemu+tls?
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
[Wangkai (Kevin,C)] Maybe I will try this later.
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 :|

On Thu, Apr 11, 2013 at 09:45:18AM +0000, Wangkai (Kevin,C) wrote:
How can I connect to libvirtd with ssh automatically? No need to type the password manually.
Just use SSH public key authentication with an empty passphrase, just as you would with any other automated SSH connection.
participants (3)
-
Daniel P. Berrange
-
Henrik Ahlgren
-
Wangkai (Kevin,C)