[libvirt] [PATCH RFCv2 0/5] LibSSH2 transport for libvirt

Peter Krempa pkrempa at redhat.com
Tue Jan 3 23:47:36 UTC 2012


This patchset proposes to use libssh2 as ssh transport option in libvirt
instead of the usual "spawn the client and connect pipes" approach.

For this to work, you'll need at least libssh2 v 1.3.0.

This is the second iteration of this functionality. I have completed nearly
all of the functionality and tested most of the common situations.

If you'd like to try this out, I've prepared for you a branch in my git repo:

git checkout -B libssh_transport 66ca7ce573a69858c5af60645984bb1f2f90b1e7
git pull git://aeon.pipo.sk/libvirt.git libssh_transport

(It should be up most of the time)

To test the connection use URI's in the following format:

qemu+libssh://USER@HOST:PORT/system?known_hosts=PATH_TO_KNOWN_HOSTS_FILE&keyfile=PATH_TO_PRIVATE_KEY

The parameters may be omitted and then they take a default value (root at localhost:22).

SSH Agent authentication is supported automaticaly. For public key to work
you need to specify the path to the key.

For host key verification to work, you'll need to specify the path
to a known_hosts file. (It may be empty and even don't exist).

I'd appreciate your feedback. Thanks for your comments and time.

Peter

Peter Krempa (5):
  libssh2_transport: add main libssh2 transport implementation
  libssh2_transport: add ssh context support to virNetSocket
  libssh2_transport: Add libssh2 session support to net client code
  libssh2_transport: Use libssh2 driver code in remote driver
  virsh: Reconnect to daemon if remote netcat crashes while using
    libssh

 configure.ac                  |   40 ++-
 include/libvirt/virterror.h   |    4 +
 po/POTFILES.in                |    1 +
 src/Makefile.am               |    9 +
 src/libvirt_private.syms      |    1 +
 src/remote/remote_driver.c    |  116 +++--
 src/rpc/virnetclient.c        |   91 ++++-
 src/rpc/virnetclient.h        |   11 +
 src/rpc/virnetlibsshcontext.c | 1132 +++++++++++++++++++++++++++++++++++++++++
 src/rpc/virnetlibsshcontext.h |   76 +++
 src/rpc/virnetsocket.c        |  136 +++++-
 src/rpc/virnetsocket.h        |   12 +
 src/util/virterror.c          |   14 +
 tools/virsh.c                 |    3 +-
 14 files changed, 1606 insertions(+), 40 deletions(-)
 create mode 100644 src/rpc/virnetlibsshcontext.c
 create mode 100644 src/rpc/virnetlibsshcontext.h

-- 
1.7.3.4




More information about the libvir-list mailing list