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