mirror of
https://github.com/rwinkhart/sshyp.git
synced 2026-08-28 04:46:34 -04:00
144 lines
6.7 KiB
Plaintext
144 lines
6.7 KiB
Plaintext
.TH sshyp 1 "07 January 2024" "v1.5.2" "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> [argument] [option]] | [argument]
|
|
|
|
Server Usage: sshyp <argument>
|
|
.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:
|
|
sshyp init
|
|
|
|
Altering the existing sshyp configuration:
|
|
sshyp tweak
|
|
|
|
Viewing the entry database:
|
|
sshyp
|
|
|
|
Reading an existing entry saved as '~/.local/share/sshyp/development/github.gpg':
|
|
sshyp /development/github
|
|
|
|
Removing an existing folder saved as '~/.local/share/sshyp/social':
|
|
sshyp /social shear
|
|
|
|
Reading the same entry without hiding the password:
|
|
sshyp /development/github --show
|
|
|
|
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 synchronizing entries with the server:
|
|
sshyp sync
|
|
.SH ARGUMENTS (CLIENT)
|
|
help/-h bring up the help menu
|
|
version/-v display sshyp version info
|
|
init set up sshyp
|
|
tweak change configuration options/manage extensions and updates
|
|
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 OPTIONS (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 ARGUMENTS (SERVER)
|
|
help/-h bring up this menu
|
|
version/-v display sshyp version info
|
|
init set up sshyp
|
|
tweak change configuration options/manage extensions and updates
|
|
.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 init" and set the device type as server
|
|
Optionally, configure a quick-unlock pin from the tweak menu
|
|
Done!
|
|
|
|
Client setup:
|
|
Install sshyp
|
|
Run "sshyp init" 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 TROUBLESHOOTING
|
|
.B Clipboard not clearing:
|
|
|
|
The intended way for sshyp to interact with the system clipboard is for it to clear it 30 seconds after copying a field. Unfortunately, this does not work by default on all systems due to the prevalence of clipboard managers.
|
|
|
|
Clipboard managers save a history of what has been copied to the clipboard, which is already a big enough issue on its own for people who copy sensitive information to their clipboard. Some clipboard managers simply will not allow the clipboard to be empty and will replace its contents with the last copied item if you attempt to clear it. One such naughty clipboard manager is KDE Klipper, which comes packaged into KDE Plasma and is typically enabled by default on most distributions. Due to this behavior, KDE Klipper breaks sshyp's clipboard clearing functionality and should not be left enabled.
|
|
|
|
It is likely other popular clipboard managers exhibit this behavior as well (Klipper is just the one I first noticed it with). Clipboard managers should not be enabled by default in any environment or distribution due to their potential security implications.
|
|
|
|
.B Shell completions not working:
|
|
ZSH:
|
|
Make sure your ~/.zshrc contains the following:
|
|
autoload -Uz compinit && compinit
|
|
Restart your shell
|
|
|
|
Bash:
|
|
Install your distribution's 'bash-completion' package and restart your shell
|
|
OR
|
|
Source the completion script manually by adding the following to your ~/.bashrc (then restart your shell):
|
|
Linux:
|
|
source /usr/share/bash-completion/completions/sshyp
|
|
FreeBSD:
|
|
source /usr/local/share/bash-completion/completions/sshyp
|
|
Haiku:
|
|
source /system/data/bash-completion/completions/sshyp
|
|
|
|
.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
|
|
|
|
6 - other error
|
|
.SH AUTHOR
|
|
Randall Winkhart (https://github.com/rwinkhart)
|