Guide to Keybase encrypted directories

Guide to Keybase encrypted directories

By Arthur BUSSER

Jun 18, 2018

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.

Canada - Morocco - France

International locations

10 rue de la Kasbah
2393 Rabbat
Canada

We are a team of Open Source enthusiasts doing consulting in Big Data, Cloud, DevOps, Data Engineering, Data Science…

We provide our customers with accurate insights on how to leverage technologies to convert their use cases to projects in production, how to reduce their costs and increase the time to market.

If you enjoy reading our publications and have an interest in what we do, contact us and we will be thrilled to cooperate with you.