This is a guide to using Keybase’s encrypted directories to store and share files. Keybase is a group, file and chat application who’s goal is to bring public key crypto based on PGP to everyone in the world, even people who don’t understand it.
If you have the Keybase client installed on your computer, you have a FUSE partition used to store any directories you may want to access. On a Linux system, this partition is mounted in the
$ df -h Filesystem Size Used Avail Use% Mounted on ... /dev/fuse 250G 406K 250G 1% /keybase
This partition is encrypted and syncronized with the Keybase servers. Keybase has three categories of directories: public, private, and team.
$ ls -la /keybase/ total 0 dr-x------ 1 laitdebanane root 0 Nov 20 14:02 private dr-x------ 1 laitdebanane root 0 Nov 20 14:02 public dr-x------ 1 laitdebanane root 0 Nov 20 14:02 team
Every Keybase user has a public directory. As you can guess, the contents of this directory is public. If you want to see the contents of yours, you can check it locally, here’s mine:
$ tree -a /keybase/public/laitdebanane/ /keybase/public/laitdebanane/ ├── dotfiles │ ├── .Xdefaults │ ├── .Xdefaults.d │ │ ├── atom_one_dark_theme │ │ ├── google_dark_theme │ │ ├── isotope_dark_theme │ │ ├── solarized_theme │ │ └── tango_theme │ ├── .bash_aliases │ ├── .bash_prompt │ └── .bashrc ├── info.md └── security └── id_rsa.pub 3 directories, 11 files
Unlike public directories, private directories are not accessible by anyone they are not meant for. You can have a private directory just to yourself, as well as directories shared with other users.
Accessing your private directory is pretty straightforward. Here is how I access mine:
$ cd /keybase/private/laitdebanane/
To share a private directory with another Keybase user, you do not need to create it. Keybase manages these directories seamlessly. Let’s say I wanted to share a directory with the user
foo, I would need to access the directory
/keybase/private/laitdebanane,foo/. If I also wanted to share with
bar, I would access
Keybase also supports subteams, which means that our consultants working for Adaltas Marocco can create a
adaltas.ma subteam and share files with each other in the
Sometimes you want to reference a user but you don’t know their Keybase username. Keybase implements aliases for this. For instance, I have linked my GitHub account to my Keybase account. This means you can access my public Keybase directory by replacing my username
surgicalbanana@github (both usernames are the same, so this may not be the most impressive example).
$ tree -a /keybase/public/surgicalbanana@github/ /keybase/public/laitdebanane@github/ ├── dotfiles │ ├── .Xdefaults │ ├── .Xdefaults.d │ │ ├── atom_one_dark_theme │ │ ├── google_dark_theme │ │ ├── isotope_dark_theme │ │ ├── solarized_theme │ │ └── tango_theme │ ├── .bash_aliases │ ├── .bash_prompt │ └── .bashrc ├── info.md └── security └── id_rsa.pub 3 directories, 11 files
Username aliases don’t seem to work perfectly though. I have been getting an error when trying to access
/keybase/public/arthur.busser@facebook/. It does not seem aliases work at all on the https://keybase.pub website.