Mount Multiple SSH Servers Using Fuse

I work on software on half a dozen servers and I work on these every day. In order to work directly from my GUI using my favorite tools (like gedit) I need to mount them on the local file system. I wrote the script below to automatically mount these drives. If you're working on a laptop you may also want to look at my instructions on how to Unmount All Fuse Mount Points.

# Get a count of files on the foo server
dirCount=`ls /mnt/foo/ -a -1 | wc -l`
# If unmount was specified
if [ "$1" == "-u" ] ; then
	# Check if there are more files than an empty directory
	if [ $dirCount == 2 ]; then
		echo Servers are not currently mounted.
	# Unmount the volumes
	echo Unmounting servers
	fusermount -u /mnt/foo
	fusermount -u /mnt/bar
	# Check if there are more files than an empty directory
	if [ $dirCount != 2 ]; then
		echo Servers are already mounted.
 	# Mount the systems
	echo Mounting servers
	echo Connecting
	echo foo_pass | sshfs /mnt/foo -o password_stdin
	echo Connecting
	echo bar_pass | sshfs /mnt/bar -o password_stdin

You'll want to save any lines that contain foo or bar with your own server details, including the password, username, and server name. You may also want to avoid using the -o password_stdin option that I used. This is completely insecure in that anyone who gets access to your computer can find your password in this plain text bash script. If you exclude it you'll be prompted for your password each time you connect. A better solution would be to setup public/private keys on your local box and the server. For some reason, the servers I connect to have broken (or odd) key setups and I don't have control of those boxes to correct it.

comments powered by Disqus
linux/mount_multiple_ssh_servers_using_fuse.txt · Last modified: 2020/06/01 22:53 (external edit)