85 lines
2.6 KiB
Plaintext
85 lines
2.6 KiB
Plaintext
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
|