One of the challenges I face on an almost continuous basis is accessing my data files both locally, and while I'm on the road. I occasionally switch from my desktop to my laptop while still in the office, and then need a file on my desktop. And then I'll be out of the office and need access to a file sitting on my desktop. There are a number of ways to solve this common issue, but I think the best choice is to make use of network storage and then use networking techniques to map that storage to appear as a local drive. Getting this working seamlessly inside AND outside the network can be challenging though. Btw, I am focusing on a Linux solution here - I haven't been using Windows on my workstations for years so am no longer as savvy with the "Windows way" as I once was.
One way I have found that seems to solve the problem nicely is plain old SSH and SSHFS.
First task is to get SSH running on the box that will act as a server. Lots of information on the inter-webs for this. Once you have SSH running, you can issue a command something like this:
ssh myuser@computername
Where "myuser" is a user account that exists on that box, and "computername" is either the name of the box or it's IP address. (The computername must resolve to the correct IP address.) When you connect to the box for the first time, you will be prompted with a "fingerprint" that you can use to confirm the box is in fact yours. If you *ever* get prompted for the fingerprint again, and you didn't do something that would reset it, then you are probably being hacked. Once you accept the fingerprint, you are prompted for the password of the user account. At this point, you are essentially "on" the remote computer and can issues commands as if you were sitting at it's keyboard.
Next step. Sometimes you don't want to have to enter passwords all the time - automated tasks are a great example of this. To handle this, SSH supports "keys". You can set up private/public keys on the workstation you want to connect from, then copy the public key for that workstation to the "server" you want to connect to. Once this is set up, you are no longer prompted for the password, but still secure because the key must exist to establish the connection. If by chance the workstation is lost, or is no longer under your control, you only need to remove the key from the server and the workstation can no longer automagically connect. Setting this up is only a couple of commands, and well documented online. I use first 6 steps listed at http://pkeck.myweb.uga.edu/ssh/ when I need to set up the keys.
The last "needed" step. Once you have SSH and key authentication set up, you can make use of SSHFS. Chances are you'll have to install this - on a Ubuntu based system you can enter the command sudo apt-get install sshfs. Once installed you can then enter a command like this:
sshfs myuser@computername:/path/to/desired/share/directory /path/to/local/directory
The first bit is familiar - the username and computer to connect to. Then the colon (:) and a path to the directory we want to "mount". Finally, the path to a local directory that will serve as the local representation of the remote directory. If key authentication is not set up, SSH will prompt for the password as normal. After this command runs sucessfully, the remote directory appears as if it is local to your workstation.
For instance, I use the command:
sshfs shawn@myserver:/home/www /home/shawn/remote/myserver
This allows me to drag/drop files to/from my server by just navigating to /home/shawn/remote/myserver. At this stage I no longer need to care where the files reside or how to connect to the server - I just go about my business, understanding that the remote/myserver directory directly affects my web server.
The final step is to automate the mounting of the remote directory, if desired. This can be easily done by adding the sshfs command to your .bashrc file (or maybe .bash_local file - depending on your distribution). This file is located at /home/shawn/.bashrc - replacing "shawn" with your username, of course.
Now executing these commands on both my laptop and my desktop, I can connect to the same network share. Of course I have opened up the SSH ports on my firewall (port 22) so that I can access this share from outside my network. There are some security concerns involved - unfiltered SSH access to the general public can be dangerous - but a handy script like fail2ban resolves most issues here. So does a proper SSH set up. But the point is that I now have my common shared network directory accessible from anywhere in an almost transparent manner. Just be sure you familiarize yourself with SSH server configurations before diving in tooooo deeply.