Compare commits

..
5 changed files with 86 additions and 25 deletions
+3 -4
View File
@@ -1,6 +1,6 @@
#!/usr/bin/python3
# sshync 2022.01.16.unreleased12
# sshync 2022.01.17.unreleased13
# external modules
@@ -31,9 +31,8 @@ def get_titles_mods(_directory, _destination, _user_data):
if _destination == 'r':
system(f"ssh -i '{_user_data[5]}' -p {_user_data[2]} {_user_data[0]}@{_user_data[1]} \"python -c 'import sshync"
f"; sshync.get_titles_mods(\"'\"{_user_data[4]}\"'\", \"'\"l\"'\", \"'\"{_user_data}\"'\")'\"")
system(f"sftp -P {_user_data[2]} {_user_data[0]}@{_user_data[1]}:"
f"'{expanduser(f'/home/{_user_data[0]}/.config/sshync/database')}' "
f"'{expanduser('~/.config/sshync/')}'")
system(f"sftp -i '{_user_data[5]}' -P {_user_data[2]} {_user_data[0]}@{_user_data[1]}:"
f"'{expanduser(f'/home/{_user_data[0]}/.config/sshync/database')}' '{expanduser('~/.config/sshync/')}'")
_titles, _sep, _mods = ' '.join(open(expanduser('~/.config/sshync/database')).readlines()).replace('\n', '')\
.partition('^&*')
_title_list, _mod_list = _titles.split(' ')[:-1], _mods.split(' ')[1:]
+7 -3
View File
@@ -145,9 +145,9 @@ def print_info(): # prints help text based on argument
elif argument == 'version' or argument == '-v':
print('\n////////////////////////////////////////////////////////')
print('/ /')
print('/ sshyp Copyright (C) 2021 Randall Winkhart /')
print('/ sshyp Copyright (C) 2021-2022 Randall Winkhart /')
print('/ /')
print('/ Version 2022.01.17.fr3.3 /')
print('/ Version 2022.01.26.fr3.4 /')
print('/ The Boxing Update /')
print('/ /')
print('////////////////////////////////////////////////////////\n')
@@ -384,7 +384,11 @@ def remove_data(): # deletes an entry or folder from both the client and the se
s_exit()
if device_type == 'c':
system(f"ssh -p {port} {username_ssh}@{ip} \"rm -rf '{directory_ssh}{_entry_name}.gpg'\"")
remove(f"{directory}{_entry_name}.gpg")
try:
remove(f"{directory}{_entry_name}.gpg")
except FileNotFoundError:
print("\nThe file does not exist!\n")
s_exit()
# program start sequence
+42
View File
@@ -1,3 +1,45 @@
sshyp 2022.01.26.fr3.4
The Boxing Update - Patch 4
This release is a hotfix for 2022.01.17.fr3.3. It fixes a major bug with sshync.
Changes:
- sshync now correctly uses the auto-generated SSH key in all operations
- an exception has been added for attempting to delete/shear a file that does not exist
- the manpage has been updated and now includes setup instructions
&&
Planned for next major update (fr4, The sshyp Doing a Split Update):
sshyp:
** sshyp has recieved a major visual overhaul
^ this includes the new file list and thematic text art
sshync:
** sshync has been split into a separate package and now has standalone functionality as a backup/syncing utility
^ more details will be available in the sshync repo, once it is created
&&
Planned for next, next major update (fr5, The Farmer Shearing the sshyp Update):
** allow for multi-client deletion... somehow (in sshync)
** when syncing, a check is made to see if any folders are not on all devices - if the check comes back true, it is corrected (in sshyp)
** imporove password generator to guarantee more secure results
** enforce permissions on the server-side
** allow for copying entire notes (not just first line)
** ability to pass entries as arguments for more functions
&&
Backlog:
** create separate gui frontend targetting mobile and desktop Linux
** auto-completion on tab (currently unsure of best way to make this work)
<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
sshyp 2022.01.17.fr3.3
+28 -3
View File
@@ -1,4 +1,4 @@
.TH sshyp 1 "10 January 2022" "2021.12.01.fr2.3" "sshyp man page"
.TH sshyp 1 "26 January 2022" "2022.01.26.fr3.4" "sshyp man page"
.SH NAME
sshyp \- A very simple self-hosted, synchronized password manager. Alternative to GNU pass.
.SH SYNOPSIS
@@ -66,9 +66,34 @@ copy:
note/-n copy the note of an entry to your clipboard
gen:
update/-u generate a password for an existing entry
.SH BUGS
This is more of a current limitation than a bug, but:
.SH LIMITATIONS
The following limitations will be corrected in future updates:
Currently, if multiple clients are connected to a single server and a client deletes an entry, the entry is correctly deleted from the client and the server, but since the entry still exists on the other client, the next time it syncs the file will be re-uploaded. This will be fixed in an upcoming release of the syncing backend, sshync.
Currently, folders (for sorting) are not replicated onto new clients (they need to be manually created before syncing).
Currently, the entry list displays each entry with the file extension ".gpg" visible (which you do not type when reading, modifying, or creating an entry). This will be corrected when the new entry list is added.
.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, the ssh server was not installed as a dependency and needs to 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
Done!
Client setup:
Install sshyp
Run "sshyp tweak" and follow the prompts
Copy the generated public SSH key to the server using preferred method (manually adding to authorized_keys, ssh-copy-id, etc.)
**this step will be automated in the future: if an entry library already exists on the server, make sure to manually recreate any folders that exist on the server in the ~/.password-pasture directory
If you already have entries on the server, sync them using "sshyp sync"
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 AUTHOR
Randall Winkhart (https://github.com/rwinkhart)
+6 -15
View File
@@ -1,23 +1,14 @@
sshyp 2022.01.17.fr3.3
sshyp 2022.01.26.fr3.4
The Boxing Update - Patch 3
The Boxing Update - Patch 4
This release is a hotfix for 2022.01.16.fr3.2. It fixes major bugs, especially with Termux.
This release is a hotfix for 2022.01.17.fr3.3. It fixes a major bug with sshync.
Changes:
- the temporary directory for Termux is now sym-linked with its full path (no longer dangling)
- the copy function can now properly detect if Termux is being used
- ~/.config is created, if it does not already exist
- "sshyp shear" now functions again, as a bug with the lock file has been fixed
- sshync -should- now properly detect the database file on all platforms (was broken on Termux)
- total lines of code have been slightly reduced with various small optimizations
Additions planned for minor releases:
** updated the manpage with more information regarding how sshyp works and how to set it up
** ensured that it is now impossible for ghosts of entires to remain in /dev/shm
** reduced total lines of code with small optimizations
- sshync now correctly uses the auto-generated SSH key in all operations
- an exception has been added for attempting to delete/shear a file that does not exist
- the manpage has been updated and now includes setup instructions
&&