mirror of
https://github.com/andrey271192/domen_hydra.git
synced 2026-09-20 14:42:00 +00:00
fix: authorized_keys обновляется при каждом нажатии «⇄ Тоннель»
Раньше ключ добавлялся только при первой генерации. Если его удалили вручную — повторное нажатие ⇄ не помогало. Теперь authorized_keys синхронизируется каждый раз (dedup встроен).
This commit is contained in:
@@ -381,7 +381,7 @@ async def tunnel_cmd(name: str, x_admin_password: str = Header("")):
|
||||
port += 1
|
||||
rcfg["tunnel_port"] = port
|
||||
|
||||
# Keypair (один раз на роутер)
|
||||
# Keypair — генерируем один раз, но authorized_keys обновляем всегда
|
||||
if not rcfg.get("tunnel_priv_key") or not rcfg.get("tunnel_pub_key"):
|
||||
try:
|
||||
priv, pub = await asyncio.to_thread(_gen_ed25519_keypair, name)
|
||||
@@ -391,7 +391,8 @@ async def tunnel_cmd(name: str, x_admin_password: str = Header("")):
|
||||
raise HTTPException(500, f"ssh-keygen упал: {e}") from e
|
||||
rcfg["tunnel_priv_key"] = priv
|
||||
rcfg["tunnel_pub_key"] = pub
|
||||
await asyncio.to_thread(_add_pubkey_to_authorized_keys, name, pub)
|
||||
# Всегда синхронизируем authorized_keys (защита от ручного удаления)
|
||||
await asyncio.to_thread(_add_pubkey_to_authorized_keys, name, rcfg["tunnel_pub_key"])
|
||||
|
||||
# Одноразовый токен (10 мин)
|
||||
reg_token = secrets.token_urlsafe(32)
|
||||
|
||||
Reference in New Issue
Block a user