mirror of
https://gitlab.com/fdroid/fdroidserver.git
synced 2024-11-19 21:30:10 +01:00
nightly: replace / from fingerprint in SSH key filename, fixes #423
The SSH key fingerprint is used in the filename. The base64 used for SSH key fingerprints includes /. Not all keys will end up having a / in them. For those that do, this will crash since the ssh key filename ends up being non-existent dirs: $ fdroid nightly Importing keystore /home/mhoffmann/.android/debug.keystore to /tmp/.cqswaeo8/.keystore.p12... MAC verified OK writing RSA key CRITICAL: Unknown exception found! Traceback (most recent call last): File "/usr/lib/python3.6/shutil.py", line 544, in move os.rename(src, real_dst) FileNotFoundError: [Errno 2] No such file or directory: '/tmp/.cqswaeo8/.privkey' -> '/tmp/.cqswaeo8/debug_keystore_PZtS/4Tzk4dpzKiX9AAf1GrhAVi9U7UE1aYEHr6evKo_id_rsa' During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/home/mhoffmann/projects/oss/fdroidserver/fdroid", line 156, in <module> main() File "/home/mhoffmann/projects/oss/fdroidserver/fdroid", line 132, in main mod.main() File "/home/mhoffmann/projects/oss/fdroidserver/fdroidserver/nightly.py", line 284, in main privkey = _ssh_key_from_debug_keystore() File "/home/mhoffmann/projects/oss/fdroidserver/fdroidserver/nightly.py", line 73, in _ssh_key_from_debug_keystore shutil.move(privkey, ssh_private_key_file) File "/usr/lib/python3.6/shutil.py", line 558, in move copy_function(src, real_dst) File "/usr/lib/python3.6/shutil.py", line 257, in copy2 copyfile(src, dst, follow_symlinks=follow_symlinks) File "/usr/lib/python3.6/shutil.py", line 121, in copyfile with open(dst, 'wb') as fdst: FileNotFoundError: [Errno 2] No such file or directory: '/tmp/.cqswaeo8/debug_keystore_PZtS/4Tzk4dpzKiX9AAf1GrhAVi9U7UE1aYEHr6evKo_id_rsa'
This commit is contained in:
parent
5d56841f8a
commit
7b52722d12
@ -70,7 +70,8 @@ def _ssh_key_from_debug_keystore():
|
||||
|
||||
rsakey = paramiko.RSAKey.from_private_key_file(privkey)
|
||||
fingerprint = base64.b64encode(hashlib.sha256(rsakey.asbytes()).digest()).decode('ascii').rstrip('=')
|
||||
ssh_private_key_file = os.path.join(tmp_dir, 'debug_keystore_' + fingerprint + '_id_rsa')
|
||||
ssh_private_key_file = os.path.join(tmp_dir, 'debug_keystore_'
|
||||
+ fingerprint.replace('/', '_') + '_id_rsa')
|
||||
shutil.move(privkey, ssh_private_key_file)
|
||||
|
||||
pub = rsakey.get_name() + ' ' + rsakey.get_base64() + ' ' + ssh_private_key_file
|
||||
|
Loading…
Reference in New Issue
Block a user