Guide to Keybase encrypted directories
Jun 18, 2018
Never miss our publications about Open Source, big data and distributed systems, low frequency of one email every two months.
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 /keybase
directory.
$ 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
Public directories
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
Alternatively, Keybase has set up a website where all public directories are accessible. You can see the contents of mine at https://keybase.pub/laitdebanane/.
Private directories
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.
Your own private directory
Accessing your private directory is pretty straightforward. Here is how I access mine:
$ cd /keybase/private/laitdebanane/
Shared private directories
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/private/laitdebanane,foo,bar/
.
Team directories
Keybase now supports teams. Here at Adaltas, we have our own team: adaltas
. This means I can share files with everyone at the company by putting them in the /keybase/team/adaltas/
directory.
Subteam directories
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 /keybase/team/adaltas.ma/
directory.
Username aliases
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 laitdebanane
with 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.