DEV Community

David Lun
David Lun

Posted on • Originally published at davidlun.com

How to configure 1Password SSH Key and automatically sign your commits on GitHub?

  • First generate ssh key using 1Password and save it in Vault. Optionally you can add your existing keys manually.

  • On 1Password Settings -> Developer check Use the SSH agent box.

  • Create allowed-signers file, Sublime Merge complains if it can't find this file and shows all commits as invalid.

mkdir -p /home/$(whoami)/config/git/
touch /home/$(whoami)/config/git/allowed-signers
Enter fullscreen mode Exit fullscreen mode
  • Update your local git configuration ~/.gitconfig
[gpg]
    format = ssh
[gpg "ssh"]
    program = /opt/1Password/op-ssh-sign
    allowedSignersFile = /home/user/config/git/allowed-signers
[commit]
    gpgsign = true
[user]
    signingKey = ssh-ed25519 pubkey
    name = Your name
    email = email@example.org
[init]
    defaultBranch = main
Enter fullscreen mode Exit fullscreen mode
  • Update local SSH configuration to use 1Password's SSH agent for all hosts ~/.ssh/config
Host *
        IdentityAgent ~/.1password/agent.sock
Enter fullscreen mode Exit fullscreen mode
  • Finally Add your public key to your GitHub account Settings -> SSH and GPG keys -> Signing keys

1Password will pop-up to authorize the use of your private key and if you generated your private key in the app it is never saved on the computer.

Top comments (0)