.TH sshyp 1 "14 December 2022" "v1.3.0" "sshyp man page"
.SH NAME
sshyp \- A very simple self-hosted, synchronized password manager for UNIX(-like) systems. Alternative to (and compatible with) pass/password-store.
.SH SYNOPSIS
Client Usage: sshyp [option [flag] [<entry name>]] | [/<entry name>]

Server Usage: sshyp [option [flag] [<device id>]]
.SH DESCRIPTION
sshyp is a lightweight password and note management program written in Python. sshyp is used via CLI and is self-hosted with a client-server model. sshyp expects that you have access to a personal server with a properly configured ssh server, ideally accepting remote connections.
.SH EXAMPLES (CLIENT)
Setting up sshyp for the first time or altering its configuration (also recommended after major updates):
    sshyp tweak

Viewing the entry database:
    sshyp

Reading an existing entry saved as ~/.local/share/sshyp/development/github.gpg:
    sshyp /development/github

Copying the password of an existing entry saved as ~/.local/share/sshyp/financial/bank.gpg:
    sshyp copy -p /financial/bank

Editing the username of an existing entry saved as ~/.local/share/sshyp/game.gpg:
    sshyp edit -u game

Making a new entry saved as ~/.local/share/sshyp/school/university.gpg using the built-in password generator:
    sshyp gen /school/university

Creating a note-only entry saved as ~/.local/share/sshyp/notes/testNote.gpg:
    sshyp add -n /notes/testNote

Manually syncing entries with the server:
    sshyp sync

Removing an existing folder saved as ~/.local/share/sshyp/social:
    sshyp shear social/
.SH EXAMPLES (SERVER)
Setting up the quick-unlock whitelist:
    sshyp whitelist setup

Checking the quick-unlock whitelist status of all registered client devices:
    sshyp whitelist list

Adding a device with the id "laptop-im|lAoa;&;r&o:ez((g/Dz;EVb.nO_" to the quick-unlock whitelist:
    sshyp whitelist add 'laptop-im|lAoa;&;r&o:ez((g/Dz;EVb.nO_'

Removing a device with the id "laptop-im|lAoa;&;r&o:ez((g/Dz;EVb.nO_" from the quick-unlock whitelist:
    sshyp whitelist del 'laptop-im|lAoa;&;r&o:ez((g/Dz;EVb.nO_'
.SH OPTIONS (CLIENT)
 help/--help/-h           bring up the help menu
 version/-v               display sshyp version info
 tweak                    configure sshyp
 add                      add an entry
 gen                      generate a new password
 edit                     edit an existing entry
 copy                     copy details of an entry to your clipboard
 shear/-rm                delete an existing entry
 sync/-s                  manually sync the entry directory via sshync
.SH FLAGS (CLIENT)
add:
 password/-p              add a password entry
 note/-n                  add a note entry
 folder/-f                add a new folder for entries

edit:
 rename/relocate/-r       rename or relocate an entry
 username/-u              change the username of an entry
 password/-p              change the password of an entry
 note/-n                  change the note attached to an entry
 url/-l                   change the url attached to an entry

copy:
 username/-u              copy the username of an entry to your clipboard
 password/-p              copy the password of an entry to your clipboard
 url/-l                   copy the URL of an entry to your clipboard
 note/-n                  copy the note of an entry to your clipboard

gen:
 update/-u                generate a password for an existing entry
.SH OPTIONS (SERVER)
 help/--help/-h           bring up this menu
 version/-v               display sshyp version info
 tweak                    configure sshyp
 whitelist                manage the quick-unlock whitelist
.SH FLAGS (SERVER)
whitelist:
 setup                    set up the quick-unlock whitelist
 list/-l                  view all registered device ids and their quick-unlock whitelist status
 add                      whitelist a device id for quick-unlock
 delete/del               remove a device id from the quick-unlock whitelist
.SH SETUP
sshyp operates on a client-server model, and thus requires you to have access to your own server (whether it be a physical home server or a cloud rental) with remote access via SSH.

The sshyp package includes modes for operating on both client and server devices, so only one package is necessary.

Server setup:
    Configure an OpenSSH server (if sshyp was installed from the Debian package, openssh-server and openssh-sftp-server must be installed manually - if sshyp was installed from the Fedora package, openssh-server must be installed manually)
    Allow remote access to the SSH server w/public key authentication (disabling password-only authentication recommended)
    Install sshyp
    Run "sshyp tweak" and set the device type as server
    Optionally, run "sshyp whitelist setup" and configure quick-unlock
    Done!

Client setup:
    Install sshyp
    Run "sshyp tweak" and follow the prompts
    Copy the generated public SSH key (located at ~/.ssh/sshyp.pub) to the server using preferred method (manually adding to authorized_keys, ssh-copy-id, etc.)
    If you already have entries on the server, sync them using "sshyp sync"
    Optionally, Bash completions can be enabled by installing your distribution's "bash-completion" package and restarting your terminal
    Done!

Please note that the server setup intentionally does not allow the reading of entries (it does not allow adding a gpg decryption key). For security purposes, only clients can read entries.
.SH EXIT CODES
0 - no error

1 - argument error

2 - configuration error

3 - data not found error

4 - data already exists error

5 - decryption/encryption error

6 - server connection error
.SH AUTHOR
Randall Winkhart (https://github.com/rwinkhart)
