Is it possible to have, say, one machine with software installed and call that software from another machine? I thought this would be called an "application server" but by googling I find things that are not exactly what I want. My scenario is basically the following:

I have a computer at home with Ubuntu and a bunch of programs, under which one Latex distribution. This is setup as a server, with ssh-access, apache and the like. From my work computer, running Windows, I would like to use my Latex at home instead of installing it locally. But I would like it to store the files, in particular the generated PDF, in the Work computer (this is actually not extremely important: I can always copy the files later, but it would just save some time if it worked).

What are the possible ways to do that?

6 Answers 6


If you can install software on your work computer, then you could install win-sshfs and a ssh client such as PuTTY on your Windows machine.

You can then ssh into the remote Ubuntu server to run LaTex and create your files, after which you could use win-sshfs to access those files from the Windows machine.

This way, you'd only need the one ssh port open on your remote Ubuntu server and one port-forward on your router.


You can run a program from your home computer over SSH. The application will still run on the computer at home but be streamed over the internet. This can be done via X forwarding.

An X forwarding tutorial can be found at the following 2 URL's;



  • 3
    This doesn't achieve Andyc's goal of having the files stored on the work computer though.
    – David Z
    Dec 9, 2014 at 13:45

Yes it is possible, but there are multiple steps involved:

  1. You must be able to reach your home computer running Linux from the internet. This means opening up port 22 (ssh) or your router at home, or a higher port if your provider blocks incoming access on ports below 1024. Then install openssh-server (and make it listen on any non-default port). You also need to know the routers IP address at home. Some routers have some functionality to update a dynamic name service. If that is not available your home computer can do that, or in the worst case send an email on a regular basis to your work address (you should be able to pull the IP address of the router from the headers of an email).

  2. Your work computer needs to be setpu with PuTTY and an X extension. PuTTY makes the secure connection, the X entension is necessary to view the remote programs that are not commandline based. You can use Xming for that. It might be that you can just run the LaTeX commands without X, depending on which editor/environment you normally use.

  3. PuTTY also allows you to copy files from your machine at home to your local machine.


A simple workaround would be to use dropbox, or any type of software that lets you sync between linux and windows (also see Unison and BitTorrent Sync). If you have dropbox running in both computers, then your work folder will be synchronized almost instantly. This way you can have the updated pdf in a few seconds after compiling.

  • 1
    The reputation limit is there to encourage you to watch and learn before commenting, so that you have time to learn how the site works before jumping in. That requirement is evident here, as it is also evident that the reputation limit was not put in place so that you can just find some other non-comment way of posting a comment. Dec 9, 2014 at 18:09
  • Yes, you are right. I think I will remove the line about this meant to be a comment; I think the dropbox solution would be good and simple enough for many people, so it deserves to be more than a comment.
    – geo909
    Dec 9, 2014 at 23:54

Use software like teamviewer to remotely access your Ubuntu machine. http://www.teamviewer.com/en/index.aspx

  • This also allows you to transfer the files after edits; not, AFAIK, real-time, but it should do the job. It does save the aggro of maintaining IP addresses, as both machines log into the server. Dec 9, 2014 at 13:35
  • This is more complex than needed to run programs on the remote machine — just use SSH. And neither method allows the remote programs to work with local files. Dec 9, 2014 at 23:19

Traditionally, this is done with rexec. For example:

rexec mymachine.batcave.ucsd.edu export DEBIAN_FRONTEND=noninteractive
rexec mymachine.batcave.ucsd.edu apt-get update -q
rexec mymachine.batcave.ucsd.edu apt-get install -q -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" ssh

would install ssh on the remote machine (mymachines.batcave.ucsd.edu) with no interaction, assuming it is Debian based and you have credentials set up properly.

You can enter credentials on the command line. If they are absent rexec will use those from the $HOME/.netrc file. You can also use the -n switch and rexec will prompt you for a username/password.

Note that information transmitted over the wire is unencrypted so it is insecure. For this reason it has become standard practice to start a secure shell with ssh and then give commands through that shell. Many systems disable rexec by default, so to enable it you have to modify security settings in /etc/pam.d/rexec. rexec is the easiest way to remotely execute a process, but should only be used when your network is private or otherwise secure (or if you don't care about security).

  • What's the point of rexec recommending over ssh? rexec isn't readily available this century, and is insecure except on trusted networks. Anyway, it doesn't fulfill the requirement of allowing the remote program to work with local files. Dec 9, 2014 at 23:18

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .