Gabriel - Secure Remote D-Bus https://gabriel.ladish.org/
Go to file
Nedko Arnaudov c6cf3fb0e4 README: Add website URL 2023-05-14 17:22:09 +03:00
src update autotools 2023-05-14 17:16:11 +03:00
.gitignore gitignore generated files 2009-11-02 04:12:27 +02:00
AUTHORS Add valid email address of Zeeshan Ali 2009-11-03 01:26:39 +02:00
COPYING * COPYING: 2007-01-03 14:27:15 +00:00
ChangeLog * src/gabriel.c: (gabriel_create_unix_server), 2007-02-26 23:00:30 +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: Add website URL 2023-05-14 17:22:09 +03:00
TODO * TODO: Add another TODO. 2007-02-01 09:54:32 +00:00
autogen.sh * autogen.sh: Another attempt to fix the params to autoreconf. 2007-01-30 21:11:59 +00:00
configure.ac "Report bugs to the package provider." 2023-05-14 17:20:51 +03:00

README

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