mirror of
https://github.com/rwinkhart/sshyp.git
synced 2026-09-03 07:37:16 -04:00
Compare commits
11
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b08456e873 | ||
|
|
ef828b88a0 | ||
|
|
bde243c644 | ||
|
|
894f406fd2 | ||
|
|
00b935f1bb | ||
|
|
49608cb839 | ||
|
|
a417478aa0 | ||
|
|
344c74b728 | ||
|
|
fc0e4bb4a5 | ||
|
|
37867cb673 | ||
|
|
86aa7da038 |
@@ -61,7 +61,7 @@ def tweak(): # runs configuration wizard
|
||||
open(path.expanduser('~/.config/sshyp/sshyp-device'), 'w').write(_device_type)
|
||||
Path(path.expanduser('~/.config/sshyp/deleted')).mkdir(0o700, parents=True, exist_ok=True)
|
||||
copy('/usr/bin/sshync.py', path.expanduser('~/'))
|
||||
copy('/usr/bin/sshyp-remote.py', path.expanduser('~/sshyp-remote.py'))
|
||||
copy('/usr/bin/sshypRemote.py', path.expanduser('~/sshypRemote.py'))
|
||||
print('\nMake sure the ssh service is running and properly configured.\n\nConfiguration complete!\n')
|
||||
s_exit()
|
||||
else:
|
||||
@@ -160,7 +160,7 @@ def print_info(): # prints help text based on argument
|
||||
print('/ /')
|
||||
print('/ sshyp Copyright (C) 2021-2022 Randall Winkhart /')
|
||||
print('/ /')
|
||||
print('/ Version 2022.02.16.fr4.4 /')
|
||||
print('/ Version 2022.02.16.fr4.7 /')
|
||||
print('/ The High-Tech Shears Update /')
|
||||
print('/ /')
|
||||
print('////////////////////////////////////////////////////////\n')
|
||||
@@ -212,8 +212,8 @@ def read_shortcut(): # shortcut to quickly read an entry
|
||||
def sync(): # calls sshync to sync changes to the user's server
|
||||
print('\nSyncing entries with the server device...\n')
|
||||
# check for deletions
|
||||
system(f"ssh -i '{path.expanduser('~/.ssh/sshyp')}' -p {port} {username_ssh}@{ip} \"python -c 'import sshyp-remote"
|
||||
f"; sshyp-remote.deletion_check(\"'\"{client_device_name}\"'\")'\"")
|
||||
system(f"ssh -i '{path.expanduser('~/.ssh/sshyp')}' -p {port} {username_ssh}@{ip} \"python -c 'import sshypRemote"
|
||||
f"; sshypRemote.deletion_check(\"'\"{client_device_name}\"'\")'\"")
|
||||
system(f"sftp -p -q -i '{path.expanduser('~/.ssh/sshyp')}' -P {port} {username_ssh}@{ip}:"
|
||||
f"'/home/{username_ssh}/.config/sshyp/deletion_database' {path.expanduser('~/.config/sshyp/')}")
|
||||
try:
|
||||
@@ -225,17 +225,19 @@ def sync(): # calls sshync to sync changes to the user's server
|
||||
for _file in _deletion_database:
|
||||
if _file[:-1].endswith('/'):
|
||||
try:
|
||||
print(f"Removing folder {path.expanduser('~/.password-pasture/')}{_file[:-1]}...\n")
|
||||
rmtree(f"{path.expanduser('~/.password-pasture/')}{_file[:-1]}")
|
||||
except FileNotFoundError:
|
||||
print('Folder does not exist locally.\n')
|
||||
else:
|
||||
try:
|
||||
print(f"Removing entry {path.expanduser('~/.password-pasture/')}{_file[:-1]}...\n")
|
||||
remove(f"{path.expanduser('~/.password-pasture/')}{_file[:-1]}.gpg")
|
||||
except (FileNotFoundError, IsADirectoryError):
|
||||
print('File does not exist locally.\n')
|
||||
# check for new folders
|
||||
system(f"ssh -i '{path.expanduser('~/.ssh/sshyp')}' -p {port} {username_ssh}@{ip} \"python -c 'import sshyp-remote"
|
||||
f"; sshyp-remote.folder_check()'\"")
|
||||
system(f"ssh -i '{path.expanduser('~/.ssh/sshyp')}' -p {port} {username_ssh}@{ip} \"python -c 'import sshypRemote"
|
||||
f"; sshypRemote.folder_check()'\"")
|
||||
system(f"sftp -p -q -i '{path.expanduser('~/.ssh/sshyp')}' -P {port} {username_ssh}@{ip}:"
|
||||
f"'/home/{username_ssh}/.config/sshyp/folder_database' {path.expanduser('~/.config/sshyp/')}")
|
||||
try:
|
||||
@@ -245,10 +247,11 @@ def sync(): # calls sshync to sync changes to the user's server
|
||||
_folder_database = None
|
||||
s_exit()
|
||||
for _folder in _folder_database:
|
||||
if Path(f"{path.expanduser('~/.password-pasture/')}{_folder[:-1]}").is_dir():
|
||||
if Path(f"{path.expanduser('~')}{_folder[:-1]}").is_dir():
|
||||
pass
|
||||
else:
|
||||
Path(f"{path.expanduser('~/.password-pasture/')}{_folder[:-1]}").mkdir(0o700, parents=True, exist_ok=True)
|
||||
print(f"Adding folder {path.expanduser('~')}{_folder[:-1]}...\n")
|
||||
Path(f"{path.expanduser('~')}{_folder[:-1]}").mkdir(0o700, parents=True, exist_ok=True)
|
||||
# set permissions before uploading
|
||||
system('find ' + directory + ' -type d -exec chmod -R 700 {} +')
|
||||
system('find ' + directory + ' -type f -exec chmod -R 600 {} +')
|
||||
@@ -434,8 +437,8 @@ def remove_data(): # deletes an entry from the server and flags it for local de
|
||||
except FileNotFoundError:
|
||||
print('\nAccess denied.\n')
|
||||
s_exit()
|
||||
system(f"ssh -i '{path.expanduser('~/.ssh/sshyp')}' -p {port} {username_ssh}@{ip} \"python -c 'import sshyp-remote"
|
||||
f"; sshyp-remote.delete(\"'\"{_entry_name}\"'\")'\"")
|
||||
system(f"ssh -i '{path.expanduser('~/.ssh/sshyp')}' -p {port} {username_ssh}@{ip} \"python -c 'import sshypRemote"
|
||||
f"; sshypRemote.delete(\"'\"{_entry_name}\"'\")'\"")
|
||||
|
||||
|
||||
# program start sequence
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
|
||||
# external modules
|
||||
|
||||
from os import remove, listdir
|
||||
from os.path import expanduser, isdir, join
|
||||
from os import listdir, remove, walk
|
||||
from os.path import expanduser
|
||||
from shutil import rmtree
|
||||
|
||||
|
||||
@@ -38,7 +38,8 @@ def deletion_check(_client_device_name):
|
||||
|
||||
|
||||
def folder_check():
|
||||
open(expanduser('~/.config/sshyp/deletion_database'), 'w').write('')
|
||||
for _file in listdir(expanduser('~/.password-pasture')):
|
||||
if isdir(join('~/.config/sshyp/deletion_database/', _file)):
|
||||
open(expanduser('~/.config/sshyp/folder_database'), 'a').write(_file + '\n')
|
||||
open(expanduser('~/.config/sshyp/folder_database'), 'w').write('')
|
||||
for _root, _directories, _files in walk(expanduser('~/.password-pasture')):
|
||||
for _dir in _directories:
|
||||
open(expanduser('~/.config/sshyp/folder_database'), 'a')\
|
||||
.write(f"{_root.replace(expanduser('~'), '')}/{_dir}\n")
|
||||
@@ -1,3 +1,133 @@
|
||||
sshyp 2022.02.16.fr4.7
|
||||
|
||||
The High-Tech Shears Update - Patch 7
|
||||
|
||||
This release enables recursive folder syncing.
|
||||
|
||||
Note: Upgrading from releases older than fr4.7 requires the configuration ("sshyp tweak") to be re-done, as the configuration process has changed.
|
||||
|
||||
Changes:
|
||||
|
||||
- re-wrote folder checking function to fetch subdirectories recursively
|
||||
- added in user-facing messages for when folders are being synced or entries are being removed
|
||||
- fixed a typo preventing folder syncing from working (actually tested this time)
|
||||
|
||||
&&
|
||||
|
||||
Planned for next major update (fr5, 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 (fr6, The Farmer Shearing the sshyp Update):
|
||||
|
||||
** 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.02.16.fr4.6
|
||||
|
||||
The High-Tech Shears Update - Patch 6
|
||||
|
||||
This release addresses a critical typo.
|
||||
|
||||
Note: Upgrading from releases older than fr4.6 requires the configuration ("sshyp tweak") to be re-done, as the configuration process has changed.
|
||||
|
||||
Changes:
|
||||
|
||||
- corrected a typo error causing folder syncing issues
|
||||
|
||||
&&
|
||||
|
||||
Planned for next major update (fr5, 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 (fr6, The Farmer Shearing the sshyp Update):
|
||||
|
||||
** 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.02.16.fr4.5
|
||||
|
||||
The High-Tech Shears Update - Patch 5
|
||||
|
||||
This release addresses a critical syntax error.
|
||||
|
||||
Note: Upgrading from releases older than fr4.5 requires the configuration ("sshyp tweak") to be re-done, as the configuration process has changed.
|
||||
|
||||
Changes:
|
||||
|
||||
- corrected a syntax error causing critical functionality issues
|
||||
|
||||
&&
|
||||
|
||||
Planned for next major update (fr5, 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 (fr6, The Farmer Shearing the sshyp Update):
|
||||
|
||||
** 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.02.16.fr4.4
|
||||
|
||||
The High-Tech Shears Update - Patch 4
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
.TH sshyp 1 "16 February 2022" "2022.02.16.fr4.1" "sshyp man page"
|
||||
.TH sshyp 1 "16 February 2022" "2022.02.16.fr4.7" "sshyp man page"
|
||||
.SH NAME
|
||||
sshyp \- A very simple self-hosted, synchronized password manager. Alternative to GNU pass.
|
||||
.SH SYNOPSIS
|
||||
|
||||
@@ -1,18 +1,16 @@
|
||||
sshyp 2022.02.16.fr4.4
|
||||
sshyp 2022.02.16.fr4.7
|
||||
|
||||
The High-Tech Shears Update - Patch 4
|
||||
The High-Tech Shears Update - Patch 7
|
||||
|
||||
This release automatically generates user-created folders on new client devices.
|
||||
This release enables recursive folder syncing.
|
||||
|
||||
Note: Upgrading to releases in the fr4 series requires the configuration ("sshyp tweak") to be re-done, as a device name now must be set (for multi-client deletion). Even upgrading from fr4.3 to fr4.4 will require re-running "sshyp tweak" due to file name changes.
|
||||
|
||||
Features:
|
||||
|
||||
- implemented proper folder syncing for new clients and clients missing folders that exist server-side
|
||||
Note: Upgrading from releases older than fr4.7 requires the configuration ("sshyp tweak") to be re-done, as the configuration process has changed.
|
||||
|
||||
Changes:
|
||||
|
||||
- old device names are now automatically deleted (locally) when running "sshyp tweak", to prevent conflicts
|
||||
- re-wrote folder checking function to fetch subdirectories recursively
|
||||
- added in user-facing messages for when folders are being synced or entries are being removed
|
||||
- fixed a typo preventing folder syncing from working (actually tested this time)
|
||||
|
||||
&&
|
||||
|
||||
@@ -30,7 +28,6 @@ sshync:
|
||||
|
||||
Planned for next, next major update (fr6, The Farmer Shearing the sshyp Update):
|
||||
|
||||
** 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)
|
||||
|
||||
Reference in New Issue
Block a user