
Ephemera एक हल्का, स्व-होस्टेड SSH प्रमाणपत्र प्राधिकरण (CA) है जिसे इंफ्रास्ट्रक्चर के लिए ज़ीरो-ट्रस्ट पहुँच लागू करने हेतु डिज़ाइन किया गया है। यह स्थिर SSH कुंजियों को अल्पकालिक प्रमाणपत्रों से बदलता है, हार्डवेयर-समर्थित WebAuthn MFA को एकीकृत करता है, और क्रिप्टोग्राफिक रूप से सत्यापन योग्य ऑडिट ट्रेल बनाए रखता है।
[!NOTE] विहित स्रोत: Codeberg
GitHub मिरर: GitHub (उपलब्धता और होस्टिंग के लिए)
graph LR
subgraph Client["User (Operator)"]
SSH["SSH Client"]
HW["Hardware Key<br/>WebAuthn / YubiKey"]
end
subgraph Auth["Authentication Boundary"]
MFA["WebAuthn MFA<br/><i>Human presence required</i>"]
OIDC["OIDC<br/><i>Optional</i>"]
end
subgraph CA["Ephemera SSH Certificate Authority"]
CORE["Self-hosted CA<br/>Air-gap capable"]
POLICY["Policy Engine<br/><i>Governance at issuance</i>"]
BUDGET["Trust Budgeting<br/><i>Optional</i>"]
end
subgraph Targets["Target Servers"]
NATIVE["Native OpenSSH<br/>TrustedUserCAKeys"]
NOAGENT["No agents<br/>No SSH proxy"]
end
subgraph Audit["Audit & Recovery"]
LOG["Tamper-Evident<br/>Audit Log"]
BACKUP["Encrypted Backups<br/>Shamir Recovery"]
end
Client --> Auth
Auth -->|"Short-lived cert"| CA
CA -->|"Certificate expires<br/>automatically"| Targets
CA -.->|"Post-fact integrity"| Audit
style Auth fill:#e8f5e9,stroke:#2e7d32
style CA fill:#e3f2fd,stroke:#1565c0
style Audit fill:#fff3e0,stroke:#ef6c00Ephemera क्या करता है: यह नियंत्रित करता है कि किसे पहुँच मिल सकती है और कितनी देर के लिए।
Ephemera क्या नहीं करता: रनटाइम मॉनिटरिंग, MITM प्रॉक्सिंग, कमांड निरीक्षण।
प्रवर्तन: पूर्णतः मूल OpenSSH के भीतर — लक्ष्य सर्वरों पर कोई Ephemera एजेंट नहीं।
कुंजी रोटेशन: आवश्यक नहीं — प्रमाणपत्र स्वतः समाप्त हो जाते हैं।
Ephemera मूल OpenSSH सुविधाओं पर निर्मित एक स्व-होस्टेड SSH प्रमाणपत्र प्राधिकरण है। यह दीर्घजीवी SSH कुंजियों को अल्पकालिक प्रमाणपत्रों से बदलता है, जो जस्ट-इन-टाइम, स्पष्ट भौतिक उपस्थिति और ऑडिट योग्य विशेषाधिकार वृद्धि के साथ जारी किए जाते हैं।
यह उन टीमों के लिए डिज़ाइन किया गया है जो बिना MITM प्रॉक्सी, कस्टम प्रोटोकॉल या क्लाउड निर्भरता के केंद्रीकृत SSH शासन चाहती हैं।
मुख्य SSH CA कार्यक्षमता: प्रोडक्शन-रेडी
ट्रस्ट बजटिंग: प्रायोगिक (ऑप्ट-इन, परिवर्तन के अधीन)
प्रायोगिक सुविधाएँ स्पष्ट रूप से अलग की गई हैं और डिफ़ॉल्ट रूप से अक्षम हैं।
पारंपरिक SSH लैपटॉप और सर्वरों में फैली दीर्घजीवी निजी कुंजियों पर निर्भर करता है। एक बार कुंजी लीक हो जाने पर, जब तक आप इसे खोज नहीं लेते और हर जगह कुंजियों को रोटेट नहीं कर देते, पहुँच बनी रहती है। Ephemera स्थिर कुंजियों को अल्पकालिक प्रमाणपत्रों से बदल देता है जो स्वतः समाप्त हो जाते हैं, जिससे दुरुपयोग की अवधि महीनों से घटकर मिनटों में रह जाती है।
जस्ट-इन-टाइम एक्सेस : प्रमाणपत्र मिनटों में समाप्त हो जाते हैं (डिफ़ॉल्ट 5 मिनट), जिससे चोरी की गई साख के दुरुपयोग की संभावना कम हो जाती है।
WebAuthn प्रवर्तन : प्रमाणपत्र जारी करने के लिए YubiKey या TouchID के माध्यम से भौतिक MFA (FIDO2) इंटरैक्शन आवश्यक है।
संप्रभु पुनर्प्राप्ति : एन्क्रिप्टेड बैकअप Shamir's Secret Sharing द्वारा सुरक्षित होते हैं, जिसे पुनर्स्थापित करने के लिए कोरम (quorum) आवश्यक है।
सत्यापन योग्य ऑडिट : सभी CA क्रियाएँ छेड़छाड़-स्पष्ट इतिहास के लिए Merkle-श्रृंखलाबद्ध बही (ledger) में दर्ज की जाती हैं।
विस्तृत RBAC : YAML-आधारित पॉलिसी इंजन भूमिकाओं, संसाधनों और शर्तों के आधार पर पहुँच को परिभाषित करता है।

Ephemera में ट्रस्ट बजटिंग नामक एक प्रायोगिक, ऑप्ट-इन शासन प्रिमिटिव शामिल है।
ट्रस्ट बजटिंग प्रमाणपत्र जारी करने के समय संचयी विशेषाधिकार प्राप्त प्राधिकरण को सीमित करती है, पहुँच को एक सीमित, दृश्यमान संसाधन मानकर। प्रत्येक प्रमाणपत्र जारी करना एक स्पष्ट बजट उपभोग करता है। जब बजट समाप्त हो जाता है, सामान्य जारी करना तब तक रुक जाता है जब तक बजट रीसेट नहीं होता या कोई अलग आपातकालीन (ब्रेक-ग्लास) मार्ग उपयोग नहीं किया जाता।
यह तंत्र:
ट्रस्ट बजटिंग प्रायोगिक है और इसे बदला या हटाया जा सकता है।
दस्तावेज़ीकरण: docs/trust_budgeting.md
Ephemera में GateBridge शामिल है, जो एक शैडो मूल्यांकन प्रणाली है जो उत्पादन व्यवहार को प्रभावित किए बिना वैकल्पिक इंजन (Gate0) के विरुद्ध पॉलिसी निर्णयों को मान्य करती है।
policy-shadow.log)प्रत्येक प्रविष्टि में शामिल है:
GET /api/admin/gate0/status
रिटर्न:
{
"bridge_version": "1.0.0",
"gate0_version": "v0.2.1",
"policy_hash": "sha256:8f4b...",
"status": "healthy",
"last_mismatch": null,
"telemetry": {
"latency_p50_ms": 2.3,
"latency_p95_ms": 5.1,
"latency_p99_ms": 8.7
}
}
GateBridge को कॉन्फ़िगरेशन फ़्लैग के माध्यम से अक्षम किया जा सकता है। शैडो मोड फेल-ओपन है और प्राधिकरण निर्णयों को प्रभावित नहीं करता।
Gate0 CLI इंटरफ़ेस में कोई ब्रेकिंग परिवर्तन नहीं। शैडो लॉग नए फ़ील्ड प्राप्त करते हैं लेकिन पिछड़े-संगत रूप से पार्स करने योग्य रहते हैं।
लक्ष्य: 5 मिनट से कम में अपना पहला SSH प्रमाणपत्र जारी करें।
# Clone and start
git clone https://github.com/Qarait/ephemera.git
cd ephemera
docker compose up -d
नोट: CA मास्टर पासवर्ड स्वतः-जनरेट होता है और पहले रन पर संग्रहीत होता है।
प्रोडक्शन के लिए, प्रारंभ करने से पहले.envफ़ाइल मेंCA_MASTER_PASSWORDसेट करें।
[!IMPORTANT] प्रोडक्शन तैनाती: हार्डवेयर-समर्थित कुंजी अलगाव के लिए SoftHSM बैकएंड का उपयोग करें। CA निजी कुंजी कभी भी डिस्क को स्पर्श नहीं करती। देखें PKCS#11 सेटअप गाइड।
अपने ब्राउज़र में http://localhost:3000 खोलें।
डिफ़ॉल्ट क्रेडेंशियल:
admindocker compose logs ephemera | grep "Password:"
वैकल्पिक Compose फ़ाइलें:
docker-compose.dev.yml — स्थानीय बिल्ड और syslog के साथ विकासdocker-compose.test.yml — एंड-टू-एंड परीक्षण के लिए SSH लक्ष्य शामिल है# Install the CLI from source
git clone https://github.com/Qarait/ephemera.git
cd ephemera
pip install .
# Initialize your SSH config
ephemera init
# Login to the CA
ephemera login
# Issue your first certificate
ephemera renew
# Check your status
ephemera status
# Connect securely!
ssh user@your-server
Ephemera एक सुरक्षित बैकअप तंत्र प्रदान करता है जो आपके महत्वपूर्ण डेटा (CA कुंजियाँ, डेटाबेस) को एक यादृच्छिक पासवर्ड से एन्क्रिप्ट करता है, और फिर उस पासवर्ड को Shamir शार्ड्स में विभाजित करता है। यह सुनिश्चित करता है कि कोई एक व्यक्ति बैकअप को पुनर्स्थापित नहीं कर सकता, लेकिन एक कोरम कर सकता है।
# Create encrypted backup and split password into 5 shards (threshold 3)
ephemera backup-create --k 3 --n 5 --out-dir ./backup
यह उत्पन्न करता है:
ephemera_backup.enc (एन्क्रिप्टेड संग्रह)backup_shard_1_of_5.json, आदि। (पासवर्ड शार्ड्स)नोट: शार्ड्स को अलग-अलग सुरक्षित स्थानों पर संग्रहीत करें। एन्क्रिप्टेड बैकअप फ़ाइल को सुरक्षित रूप से संग्रहीत करें (शार्ड्स के बिना यह बेकार है)।
# Restore using the encrypted file and any 3 shards
ephemera backup-restore --backup ./backup/ephemera_backup.enc --shards ./backup/backup_shard_1_of_5.json ./backup/backup_shard_2_of_5.json ./backup/backup_shard_4_of_5.json --out-dir ./restored
policy.yaml)Ephemera Role-Based Access Control (RBAC) के लिए एक शक्तिशाली YAML-आधारित पॉलिसी इंजन का उपयोग करता है।
# Define Roles
roles:
developer:
can_request_cert: true
max_cert_duration: 300 # 5 minutes
allowed_principals: ["dev-user"]
admin:
can_request_cert: true
max_cert_duration: 3600 # 1 hour
allowed_principals: ["root", "admin"]
can_approve_sudo: true
# Define Rules
rules:
# Developers can only access dev servers
- role: developer
resource: "dev-*"
action: "ssh"
effect: allow
# Admins can access everything with MFA
- role: admin
resource: "*"
action: "ssh"
effect: allow
conditions:
mfa_required: true
जिम्मेदार प्रकटीकरण जानकारी के लिए कृपया SECURITY.md देखें।
योगदान करना चाहते हैं? हमारे नए योगदानकर्ताओं के लिए छोटे कार्य देखें।
[!TIP] खतरा मॉडल और सुरक्षा धारणाएँ यहाँ प्रलेखित हैं। प्रतिक्रिया और आलोचना का स्वागत है।
| फ़ील्ड | विवरण |
|---|
timestamp | ISO 8601 UTC टाइमस्टैम्प |
match | बूलियन — क्या दोनों इंजन सहमत थे? |
versions.bridge | GateBridge Python संस्करण |
versions.gate0 | Gate0 CLI संस्करण |
versions.policy_hash | policy.yaml का SHA256 हैश |
context_hash | कैननिकलाइज़्ड इनपुट का SHA256 हैश |
yaml_decision | YAML इंजन परिणाम |
gate0_decision | Gate0 इंजन परिणाम |
snapshot | पूर्ण संदर्भ (केवल बेमेल पर, आकार-सीमित) |