How can I execute scribus on a remote machine and display it on the local machine?
Installation • Usage • PDF issues • Fonts • DTP • Other |
SSH methods
Try typing:
ssh -X <remote-machine-name>
Then just start Scribus, it should be displayed on your local screen. This is the preferred method for several reasons. It's more secure, it's simpler, and because SSH can perform compression it's generally faster. It also takes care of problems caused by NAT (network address translation) without your intervention. It even works with Cygwin and it's X server, so you can display Scribus to a Windows workstation.
Note that the machine you're running Scribus on (the ssh server) may need a line like:
X11Forwarding yes
in /etc/ssh/sshd_config
in order for it to permit the display of X programs remotely.
It's also possible to have ssh connect, run the program, and go into the background. This can be extremely useful for things like launcher buttons. For example:
ssh -n -f -X -C <remote-machine-name> scribus
will connect to the remote machine, start Scribus, and go into the background when Scribus has started up. When you quit Scribus, ssh will also quit, so you don't need to worry about that. The -f
makes it go into the background. -n
tells ssh not to give the remote command any standard input, which is usually a good idea when running X11 programs in the background. The -C
argument requests that ssh compress the data, which will give a signficant perfoamance boost over slower links.
Some other things can also make ssh a lot easier to use. The most significant is using public key authentication instead of passwords, and saving your key in the ssh agent. The ssh-keygen
and ssh-add
manual pages should say more, or check out this article. (I've seen better ones than that, but can't find them - if someone could point out a better one that'd be great --ringerc).
X11 display redirection
Alternately, you could use old-style X11 display redirection. Assuming you want to display scribus to display 0 on remotehost
:
DISPLAY=remotehost:0 scribus
You may need to use xhost
on the machine you want Scribus to display on to give the machine you wish to display from permission to access the display, or preferably use xauth
to copy the required authentication data. SSH's X forwarding takes care of that automatically. Some distros also tell the X server not to listen to TCP/IP connections, and this method will not work with them (but, again, will work fine with SSH) unless you change the settings to let the X server accept TCP/IP connections.
Note that old-style display redirection can be insecure - if there's an untrusted user on the remote machine and you've used xhost to permit access, they could start a keystroke logger on your display. Also, everything gets transmitted unencrypted, so someone listening on the network could capture any sensitive information you send. This is yet another good reason to use SSH instead.
FreeNX and NX client
Note that both X11 forwarding over SSH and old-style display redirection tend to be quite slow over high latency or low bandwidth links. NX handles these very well. You can find nxclient and nxserver at www.nomachine.com.
NX works really well even over a slow (40kBits/sec) connection. The nxclient is free (as beer) for Windows, Linux, and Mac OS X. The commercial NX server costs 50...500 EUR. However, there is a free implementation FreeNX available as well, which since the latest release of the version 0.40 is no more difficult to install and works reliably.
- Linux Journal article on FreeNX — many useful installation tips
- NX client download