diff --git a/snippets/netbird-claude-install.ps1 b/snippets/netbird-claude-install.ps1 index 4767340..79cfee9 100644 --- a/snippets/netbird-claude-install.ps1 +++ b/snippets/netbird-claude-install.ps1 @@ -48,9 +48,15 @@ if (-not (Test-Path $NETBIRD_EXE)) { } # ===== 3. Регистрация ===== -Write-Host "[3/7] Регистрация в tenant с Claude-Diag ключом..." -& $NETBIRD_EXE up --setup-key $SETUP_KEY 2>&1 | Out-Host -Start-Sleep 3 +# Если уже подключён к tenant (например, через свой setup-key в другой группе) — не перерегистрировать +$nbStatus = & $NETBIRD_EXE status 2>$null | Out-String +if ($nbStatus -match "Management:\s*Connected" -or $nbStatus -match "Signal:\s*Connected") { + Write-Host "[3/7] Netbird уже подключён, перерегистрацию пропускаем" +} else { + Write-Host "[3/7] Регистрация в tenant с Claude-Diag ключом..." + & $NETBIRD_EXE up --setup-key $SETUP_KEY 2>&1 | Out-Host + Start-Sleep 3 +} # ===== 4. Пользователь claude ===== Write-Host "[4/7] Создаю/обновляю пользователя $CLAUDE_USER..." @@ -119,6 +125,23 @@ try { -Value "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -PropertyType String -Force | Out-Null } catch {} +# Mac-ключ Олега в administrators_authorized_keys (для админов sshd читает только этот файл) +$macKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPonNRAAJRK5wISltjR65MmeP7fQjf5HmYdQD9mlZ07F ai@mac-20260112" +$authKeys = "C:\ProgramData\ssh\administrators_authorized_keys" +try { + if (-not (Test-Path "C:\ProgramData\ssh")) { + New-Item -ItemType Directory -Path "C:\ProgramData\ssh" -Force | Out-Null + } + $current = if (Test-Path $authKeys) { Get-Content $authKeys -Raw -ErrorAction SilentlyContinue } else { "" } + if ($current -notmatch [regex]::Escape($macKey)) { + Add-Content -Path $authKeys -Value $macKey -Encoding ASCII + } + # Жёсткие права: только SYSTEM и Administrators (требование sshd для admin-ключей) + icacls $authKeys /inheritance:r /grant "SYSTEM:F" /grant "BUILTIN\Administrators:F" 2>&1 | Out-Null +} catch { + Write-Host " Не удалось установить Mac-ключ в administrators_authorized_keys" -ForegroundColor Yellow +} + # ===== 7. Firewall rules — только для NetBird CIDR ===== Write-Host "[7/7] Firewall rules для $NETBIRD_CIDR..." $rules = @(