.TH sshyp 1 "08 June 2023" "v1.4.3" "sshyp man page"
.SH NAME
\fBsshyp\fR - Simple, self-hosted, synchronized password management for UNIX(-like) systems. Alternative to (and compatible with) pass/password-store.
.SH SYNOPSIS
Client Usage: sshyp [</entry name> [option] [flag]] [option]

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 /financial/bank copy -p

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

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

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

Manually syncing entries with the server:
    sshyp sync

Removing an existing folder saved as '~/.local/share/sshyp/social':
    sshyp /social/ shear
.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/-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                    delete an existing entry
 sync                     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/-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
 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 (on fully supported platforms) 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, shell completions (both Bash and ZSH) can be enabled with your shell's respective method
    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 - configuration error

2 - data not found error

3 - data already exists error

4 - decryption/encryption error

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