mirror of
https://github.com/rwinkhart/sshyp.git
synced 2026-08-28 04:46:34 -04:00
Only check whitelist status if the gpg agent is locked (speeds up successive quick-unlock attempts)
This commit is contained in:
+11
-10
@@ -571,16 +571,17 @@ def whitelist_setup(): # takes input from the user to set up quick-unlock passw
|
||||
|
||||
def whitelist_verify(_port, _username_ssh, _ip, _client_device_id):
|
||||
# checks the user's whitelist status and fetches the full gpg key password if possible
|
||||
_i, _full_password = 0, ''
|
||||
_server_whitelist = run('ssh -i ' + "'" + path.expanduser('~/.ssh/sshyp') + "' -p " + _port + " " + _username_ssh +
|
||||
'@' + _ip + " 'ls ~/.config/sshyp/whitelist'", shell=True, stdout=PIPE, text=True)
|
||||
for _device_id in _server_whitelist.stdout.rstrip().split('\n'):
|
||||
if _device_id == _client_device_id:
|
||||
try:
|
||||
run(f"gpg --pinentry-mode cancel -qd --output /dev/null {path.expanduser('~/.config/sshyp/lock.gpg')}",
|
||||
shell=True, stderr=PIPE, check=True, close_fds=True)
|
||||
_full_password = False
|
||||
except CalledProcessError:
|
||||
try:
|
||||
run(f"gpg --pinentry-mode cancel -qd --output /dev/null {path.expanduser('~/.config/sshyp/lock.gpg')}",
|
||||
shell=True, stderr=PIPE, check=True, close_fds=True)
|
||||
return False
|
||||
except CalledProcessError:
|
||||
_i, _full_password = 0, ''
|
||||
_server_whitelist = run('ssh -i ' + "'" + path.expanduser('~/.ssh/sshyp') + "' -p " + _port + " " +
|
||||
_username_ssh + '@' + _ip + " 'ls ~/.config/sshyp/whitelist'",
|
||||
shell=True, stdout=PIPE, text=True)
|
||||
for _device_id in _server_whitelist.stdout.rstrip().split('\n'):
|
||||
if _device_id == _client_device_id:
|
||||
_quick_unlock_password = input('\nquick-unlock passphrase: ')
|
||||
_quick_unlock_password_excluded = \
|
||||
run('ssh -i ' + "'" + path.expanduser('~/.ssh/sshyp') + "' -p " + _port + " " + _username_ssh + '@'
|
||||
|
||||
Reference in New Issue
Block a user