keybase / keybase/keybase-issues

keybase-installer cannot update client when private key is not stored in Keybase

Open
#1,636 14 comments 0 reactions 0 assignees View on GitHub
Dominant language
No language data
Stars
899
Forks
40
PR merge metrics
No merged PRs in 30d

Description

I tried updating my Keybase client today, as I am currently running 0.7.7. However, when I go to update my software, I receive the exit codes 2 and 254.

```
$ sudo keybase update
warn: No config file found; tried '/root/.config/keybase/config.json'
info: Computed npm install prefix: /
info: Found keybase-installer: keybase-installer v1.0.0
info: Detected custom path '/.'; preserving it!
info: Attempting software upgrade.....
info: Running `keybase-installer -g gpg2 --prefix /.`
info: Made temporary directory: /tmp/keybase_install_aBW6rS7IBK_bsf0EU2sPmw
info: Using keyset version v1
info: Fetching URL https://dist.keybase.io/sig/files/1/index.asc
info: cleaning up tmpdir /tmp/keybase_install_aBW6rS7IBK_bsf0EU2sPmw
error: exit code 2
warn: gpg: key 7F9E8BFA: public key "Keybase.io Index Signing (v1) " imported
warn: gpg: failed to create temporary file '/root/.gnupg/.#lk0x0000000001036ec0.justin-w-florys-desktop.7697': No such file or directory
warn: gpg: can't connect to the agent: No such file or directory
warn: gpg: Total number processed: 1
warn: gpg: imported: 1
warn: gpg: no ultimately trusted keys found
error: exit code 254
```

It seems that when running this under root privileges, it cannot detect my local cached private key to successfully update Keybase? I'm unsure what to make of this.

For testing purposes, I tried copying my `config.json` file from my user directory to the root directory `/root/.config/keybase/config.json`, but all this did was eliminate the exit code 254. I still ran into exit code 2 and the update process failed.

Is there any way to update Keybase without storing your private key in the cloud?

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reproducing `sudo keybase update` with the reported `keybase-installer -g gpg2 --prefix /.` path and inspect how the installer uses `/root/.config/keybase/config.json` and GnuPG temporary files. Compare behavior with the user's configuration and permissions; done means updates succeed without requiring the private key to be stored remotely.

Written by the indexing model from the issue text.

Assessment

Domain
cli, release
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.