I created https://github.com/mickaelperrin/onepassword-tools mainly to manage my SSH Keys. The current implementation in 1Password is a good step forward but still limited for my usage.
Have a look at:
```
Usage: op-tools new-ssh-key [OPTIONS]
Generates a new SSH key and store it in 1Password. Additional information
are stored also to generate SSH config file when imported.
Options:
--return-field TEXT Field value to return
--account TEXT Account to use (shorthand)
--vault TEXT Vault uuid where to store the information
--title TEXT Name of the 1Password item
--notes TEXT Note
--from-user TEXT User who is responsible from initiating the
connection, default current user.
--from-host TEXT Host from where the SSH connection starts,
default current hostname.
--to-user TEXT Remote user, prompted if empty. [required]
--to-host TEXT Remote server hostname, prompted if empty.
[required]
--to-host-abbreviated TEXT Alias of the remote server hostname used to
initialize connection.
--no-passphrase TEXT Create ssh key without passphrase.
--passphrase TEXT Use this passphrase instead of an autogenerated
one.
--passphrase-length INTEGER Length of the autogenerated passphrase.
--port INTEGER Remote port
--help Show this message and exit.
```
and
```
Usage: op-tools ssh-add [OPTIONS] [SEARCH]
Loads a SSH key stored in 1Password by searching [SEARCH] in uuid or in
item title, and creates a ssh configuration file of the following format:
Match originalhost [][ user ]
IdentitiesOnly yes
IdentityFile
Hostname
User
Port
Options:
-D cleanup ssh agent and remove all 1Password managed
keys and configuration
--no-ssh-config TEXT Do not create ssh config file
--help Sho
```
Note that currently ssh-add uses 1password local search which is a reverse engineering decryption of 1password database locally to increase performance and is not compatible with biometric auth. This is something that should be changed because performance is not a concern for SSh key management.