Menu

Tree [18ccd4] master /
 History

HTTPS access


File Date Author Commit
 src 2023-05-14 Nedko Arnaudov Nedko Arnaudov [5f37bd] update autotools
 .gitignore 2009-11-02 Nedko Arnaudov Nedko Arnaudov [fc4d59] gitignore generated files
 AUTHORS 2023-05-14 Nedko Arnaudov Nedko Arnaudov [18ccd4] AUTHORS: adjust zeenix real name
 COPYING 2007-01-03 zeenix zeenix [dae821] * COPYING:
 ChangeLog 2007-02-26 zeenix zeenix [9be154] * src/gabriel.c: (gabriel_create_unix_server),
 INSTALL 2007-01-03 zeenix zeenix [dae821] * COPYING:
 Makefile.am 2007-01-29 zeenix zeenix [331b4c] * Makefile.am:
 NEWS 2007-01-03 zeenix zeenix [dae821] * COPYING:
 README 2023-05-14 Nedko Arnaudov Nedko Arnaudov [c6cf3f] README: Add website URL
 TODO 2007-02-01 zeenix zeenix [67bcce] * TODO: Add another TODO.
 autogen.sh 2007-01-30 zeenix zeenix [4beee1] * autogen.sh: Another attempt to fix the params...
 configure.ac 2023-05-14 Nedko Arnaudov Nedko Arnaudov [ca59cb] "Report bugs to the package provider."

Read Me

https://gabriel.ladish.org/

Introduction
============

Gabriel is a small utility to enable D-Bus clients to connect to a D-Bus
daemon running on a remote machine, through SSH. In simple words, gabriel
is a proxy for a dbus daemon running on a remote machine.


Installing Gabriel
======================

(0) To build Gabriel, you need to have libssh (>= 0.2) [1]
    and glib (> 2.10) installed.
    
(1) Type:

    ./configure

(2) make
(3) make install


Usage Notes
=============

Gabriel is composed of one binary named, gabriel. Following is it's usage:

  gabriel [OPTION...] - Gabriel

Help Options:
  -?, --help                        Show help options

Application Options:
  -h, --host=HOSTNAME               Hostname or IP of the remote host
  -u, --username=USERNAME           Username on the remote host
  -p, --password=PASSWORD           Password on the remote host
  -b, --bind=HOSTNAME               The address to listen for DBus client connections on
  -d, --bus-address=BUS_ADDRESS     The bus address of the remote D-Bus daemon
  -t, --port=PORT                   The TCP port to listen for DBus client connections on


Upon successful launch, gabriel will inform you about the D-Bus Bus address you
need to use for your D-Bus clients. If you launch gabriel without any arguments,
it will try to get the address of the remote bus from the
DBUS_SESSION_BUS_ADDRESS environment variable, connect to the localhost, bind
TCP socket it listens on to the localhost at port 1337. The output from gabriel
on successful launch in this case would be:

Listening to D-Bus clients on: "tcp:host=localhost,port=1337"

Now to make your D-Bus clients connect to it, you either pass this
as an argument to dbus_connection_open() in the client's code or
simply set the environment variable DBUS_SESSION_BUS_ADDRESS like this:

DBUS_SESSION_BUS_ADDRESS="tcp:host=localhost,port=1337" your_dbus_client

Tada! Your dbus client is manipulating objects on a remote machine over
a secure channel.


Notes
=====

You need socat (> 1.5.0.0) installed and an ssh server running on the remote
machine on which the dbus-daemon is running.

Known Issues
================

* Only one client can connect at one time. I already have a fix for this but
  unfortunately it doesn't work since libssh is not thread-safe. However the
  developer has promised to make things better in this respect in the next
  release.

* The dbus-daemon on the remote machine should be launched by the same user
  account as used by gabriel to authenticate to that machine.


Foot Notes
============

[1] http://www.0xbadc0de.be/libssh:libssh