Gabriel - Secure Remote D-Bus https://gabriel.ladish.org/
Go to file
zeenix 331b4c1e17 * Makefile.am:
* configure.ac:
  Remove the server-side stuff from build.


git-svn-id: https://gabriel.svn.sourceforge.net/svnroot/gabriel@14 841437c2-2226-0410-8ced-e7c76d862a31
2007-01-29 13:05:08 +00:00
src * client/Makefile.am: 2007-01-29 12:52:25 +00:00
AUTHORS Moving to sf svn. 2007-01-03 14:11:06 +00:00
COPYING * COPYING: 2007-01-03 14:27:15 +00:00
ChangeLog * Makefile.am: 2007-01-29 13:05:08 +00:00
INSTALL * COPYING: 2007-01-03 14:27:15 +00:00
Makefile.am * Makefile.am: 2007-01-29 13:05:08 +00:00
NEWS * COPYING: 2007-01-03 14:27:15 +00:00
README * README: 2007-01-03 22:38:08 +00:00
TODO * README: 2007-01-03 22:38:08 +00:00
autogen.sh * autogen.sh: 2007-01-03 22:01:16 +00:00
configure.ac * Makefile.am: 2007-01-29 13:05:08 +00:00

README

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

Gabriel is a simple utility to enable D-Bus clients to connect to a D-Bus
daemon running on a remote machine, through SSH.


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

(0) To build Gabriel client, you need to have libssh (>= 0.2) [1]
    and glib (> 2.10) installed.
    
    For Gabriel server scripts, you need socat and D-Bus (> 1.0.2)
    installed on your machine.

(1) Type:

    ./configure

(2) make
(3) make install


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

Gabriel is composed of a client-side and a server side:

The server side is actually just a small dbus configuration file and
a pair of scripts that start and shut-down a dbus-daemon with that
configuration file.

Here is the usage for the Gabriel server scripts:

    gabriel-server-start [PID_FILE]
    gabriel-server-stop [PID_FILE]

Where PID_FILE is the path to the file where the PID of the dbus-daemon
will be stored. If no PID_FILE is specified, /tmp/gabriel-server.pid
is assumed. 

The client side is the actual thing and is therefore a 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=LOCALHOST        The address to listen for DBus client
                              connections on
  -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 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.


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 server (dbus-daemon actually) should be launched by the same user
  account as used by gabriel to authenticate to the server. This is because
  of some strange authentication mechanism of D-Bus that I don't really
  understand.


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

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