{
  "slug": "ssh-agent",
  "meta": {
    "title": "SSH Agent | ChromVoid",
    "description": "Vault-backed SSH keys и approval flow."
  },
  "hero": {
    "label": "SSH Agent",
    "title": "Использование ключа остаётся per-request и под approval.",
    "description": "Private key расшифровывается только для одного signing request и сразу же обнуляется после использования.",
    "audience": "Для SSH workflow, где нужны явное подтверждение и отсутствие долгоживущего key cache."
  },
  "useCases": {
    "title": "Когда это подходит",
    "intro": "Agent path полезен, когда подпись должна быть короткоживущей и auditable.",
    "cards": [
      {
        "title": "Подпись на один запрос",
        "body": "Расшифровывайте ключ только для текущего SSH signing request."
      },
      {
        "title": "Явное подтверждение",
        "body": "Держите человека в loop до того, как подпись будет создана."
      },
      {
        "title": "Обнуление памяти",
        "body": "Очищайте key material сразу после release, чтобы он не оставался в памяти."
      }
    ]
  },
  "howItWorks": {
    "title": "Жизненный цикл ключа",
    "intro": "Ключ unlock-ится только для signing и сразу же освобождается.",
    "steps": [
      {
        "title": "Vault",
        "body": "SSH key остаётся зашифрованным at rest внутри vault."
      },
      {
        "title": "Decrypt",
        "body": "ChromVoid расшифровывает ключ только для signing request."
      },
      {
        "title": "Sign",
        "body": "Пользователь подтверждает запрос, и создаётся подпись."
      },
      {
        "title": "Release",
        "body": "Key material обнуляется в памяти сразу после использования."
      }
    ],
    "diagrams": [
      {
        "src": "/assets/diagrams/ssh-agent-flow.svg",
        "alt": "Поток SSH agent signing",
        "title": "Поток SSH agent",
        "description": "Vault, decrypt, sign и release."
      }
    ]
  },
  "security": {
    "title": "Границы безопасности",
    "cards": [
      {
        "title": "Без key files на диске",
        "body": "Agent не оставляет незашифрованные key files на диске."
      },
      {
        "title": "Без долгоживущего cache",
        "body": "Между signing requests нет persistent cache."
      },
      {
        "title": "Явное подтверждение",
        "body": "Signing остаётся gated через осознанное действие пользователя."
      }
    ]
  },
  "limitations": {
    "title": "Ограничения и scope",
    "intro": "Agent намеренно простой и локальный.",
    "items": [
      "Он фокусируется на одном signing lifecycle, а не на полном SSH orchestration.",
      "Ключ расшифровывается per request, а не держится горячим в памяти.",
      "Это не remote key service."
    ],
    "notTitle": "Не key daemon farm",
    "notBody": "Agent - это локальный approval path для vault-backed SSH key."
  },
  "cta": {
    "title": "Держите SSH signing внутри локального vault-backed approval loop.",
    "body": "Ключ появляется только на время запроса, а затем снова обнуляется сразу после использования."
  },
  "ui": {
    "generic": {
      "audience": "Для кого",
      "useCases": "Сценарии",
      "how": "Как это работает",
      "security": "Безопасность",
      "limitations": "Ограничения",
      "threatModel": "Модель угроз",
      "download": "Скачать",
      "backHome": "На главную",
      "technicalDiagram": "Техническая диаграмма",
      "badges": {
        "inDevelopment": "В разработке",
        "pro": "PRO"
      }
    },
    "sshAgent": {
      "audienceLabel": "Для кого",
      "flowSection": "$ ssh-agent --flow",
      "flowTitle": "Жизненный цикл ключа",
      "flowIntro": "Ключ расшифровывается на каждый запрос и освобождается сразу после подписи. Кэша нет.",
      "boundarySection": "$ ssh-agent --boundaries",
      "boundaryTitle": "Границы безопасности",
      "socketPath": "$SSH_AUTH_SOCK",
      "protocolValue": "SSH Agent Protocol (RFC 4253)",
      "signingFlow": {
        "phases": [
          {
            "id": "vault",
            "status": "LOCKED",
            "label": "Хранилище",
            "detail": "Ключ зашифрован. AES-256-GCM."
          },
          {
            "id": "decrypt",
            "status": "DECRYPT",
            "label": "Запрос",
            "detail": "Расшифровка по запросу."
          },
          {
            "id": "sign",
            "status": "APPROVE",
            "label": "Подпись",
            "detail": "Явное подтверждение."
          },
          {
            "id": "release",
            "status": "ZEROED",
            "label": "Освобождение",
            "detail": "Ключ обнулён в памяти."
          }
        ]
      },
      "metrics": [
        {
          "value": "0",
          "label": "Файлов на диске"
        },
        {
          "value": "0",
          "label": "Кэш ключей"
        },
        {
          "value": "Per-req",
          "label": "Расшифровка"
        }
      ]
    }
  }
}
