github.com/keybase/client/go@v0.0.0-20240309051027-028f7c731f8b/doc/troubleshooting.md (about)

     1  # Troubleshooting the `keybase` command line
     2  
     3  This is a list of problems that people run into frequently.
     4  
     5  ## `pinentry` doesn't work.
     6  
     7  We use `pinentry` in situations where we need a password, but there are many
     8  exciting ways for it to break. Here are a couple examples of what that looks
     9  like:
    10  
    11  ```
    12  $ keybase login
    13  ▶ INFO Forking background server with pid=2409
    14  How would you like to sign this install of Keybase?
    15  
    16  (1) Use an existing device
    17  (2) Use a paper key
    18  (3) Use my Keybase passphrase
    19  Choose a signing option: 2
    20  ▶ ERROR GETPIN response didn't start with D; got "ERR 83918849 Permission denied <Pinentry>"
    21  ```
    22  
    23  ```
    24  $ keybase decrypt -i my_encrypted_message
    25  ▶ ERROR GETPIN response didn't start with D; got "ERR 83918950 Inappropriate ioctl for device <Pinentry>"
    26  ```
    27  
    28  These errors can be an interaction of several different things:
    29  
    30  - What version of `pinentry` you have in your `PATH`. Some of them try to
    31    create a graphical window but fall back to the terminal. Some do only one of
    32    those things.
    33  - Interesting terminal gymnastics. Running in screen or tmux can confuse the
    34    curses versions of `pinentry`. Depending on where you first started tmux, you
    35    might also end up with an invalid `DISPLAY` environment variable.
    36  - Curious account permissions. If you log into your desktop as `userfoo`, and
    37    you run something like `sudo -u userbar keybase login`, that might prevent
    38    `pinentry` from creating windows.
    39  
    40  One workaround for these problems is to disable pinentry, so that `keybase`
    41  reads your password as ordinary terminal input. Use the `--pinentry` flag to do
    42  that:
    43  
    44  ```
    45  keybase --pinentry=none login
    46  ```
    47  
    48  To make that configuration permanent, you can run:
    49  
    50  ```
    51  keybase config set -b pinentry.disabled true
    52  ```