v1.8.70: fix SSH key generation — use ssh-keygen instead of broken paramiko

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
cosmic-frost-8b10
2026-02-28 13:34:35 +00:00
parent d51c0aa09a
commit 508a288022
3 changed files with 15 additions and 14 deletions

View File

@@ -113,22 +113,23 @@ def generate_ssh_key() -> str:
os.makedirs(os.path.dirname(SSH_KEY_PATH), exist_ok=True)
import subprocess
try:
import paramiko
except ImportError:
msg = "ERROR: paramiko is not installed — cannot generate SSH key"
subprocess.run(
["ssh-keygen", "-t", "ed25519", "-f", SSH_KEY_PATH,
"-N", "", "-C", "server-manager"],
check=True, capture_output=True, timeout=15
)
log.info(f"SSH key generated: {SSH_KEY_PATH}")
return f"Key generated: {SSH_KEY_PATH}"
except FileNotFoundError:
msg = "ERROR: ssh-keygen not found — install openssh-client"
log.error(msg)
return msg
except subprocess.CalledProcessError as e:
msg = f"ERROR: ssh-keygen failed: {e.stderr.decode().strip()}"
log.error(msg)
return msg
key = paramiko.Ed25519Key.generate()
key.write_private_key_file(SSH_KEY_PATH)
pub_key = f"ssh-ed25519 {key.get_base64()} server-manager"
with open(SSH_KEY_PATH + ".pub", "w") as f:
f.write(pub_key + "\n")
log.info(f"SSH key generated: {SSH_KEY_PATH}")
return f"Key generated: {SSH_KEY_PATH}"
def install_global_claude_md() -> str: