I realized as I was writing a new post that I had never documented the gateway pi undertaking.
This started when a friend in the mountains got a new internet service where the ISP would not allow him (and therefore me) access to his router. As a result I could no longer use ssh to connect to his systems.
I solved this problem by setting his systems up to use a tool called autossh, with which I could have his system start, monitor, and keep running an ssh daemon with reverse tunnels open to my system. I could then reach him by attaching through the reverse tunnels.
I liked this idea very much, and I subsequently refined it. I began to build “gateway pis” on Raspberry Pi zero systems, which I can get, on sale, for $5. Well, that is a little bit of an exaggeration: I have to buy a case, and a micro-SD card, and a usb power brick. But the whole thing is less than $15.
I wrote a couple of setup scripts so I can initialize one of these for anybody’s house given only their SSID and password. Then I can send it to them in the mail, they plug it into the wall, and voila.
So now I have these on the networks of 6 friends and family for whom I can now provide technical assistance, backup services, and occasional other things like transferring files. Of course these have to be pretty good friends, because they are putting a lot of trust in me – they are giving me access to their networks and their files. But generally it has been the case that I am the one they call on for help anyway.
Each of them is set up with a fairly large micro-SD card (32GB, 64GB, one is 256GB) so they can house a local backup of a limited amount of stuff. So their PC or their Mac is set up to do a nightly backup onto the pi. Every night that local backup is rsynced to me. Thus they have at least two levels of backup, one outside their house. The pi has a postfix setup to enable it to send me mail if there is any problem.
And should they run into some kind of techical problem, and want help the pi is also set up to enable me to open a vnc connection to their PC or Mac, so I can share their screen.