Cloudflare heeft opkssh gepubliceerd voor authenticatie in SSH via OpenID Connect

Cloudflare heeft de opkssh (OpenPubkey SSH) toolkit gepresenteerd, waarmee centrale authenticatiemiddelen kunnen worden geïntegreerd in OpenSSH, met de mogelijkheid om in te loggen via OpenID Connect-providers. Met opkssh kan handmatige arbeid voor het beheer en de configuratie van SSH-sleutels worden geëlimineerd, evenals het mogelijk maken van verbinding met de server vanaf elke host, zonder dat het nodig is om privésleutels op elke klantcomputer te creëren en zonder handmatig openbare sleutels naar de server over te brengen. Voor verbinding is het voldoende om op de server een koppeling te maken met het account bij de OpenID-provider. De code van de toolkit is geschreven in de programmeertaal Go en wordt verspreid onder de Apache 2.0-licentie.

Opkssh is compatibel met OpenID-providers zoals Google, Microsoft/Azure en Gitlab, waardoor inloggen met bestaande accounts in de diensten gmail.com, microsoft.com en gitlab.com mogelijk is. Bij het gebruik van opkssh worden in plaats van onbeperkte SSH-sleutels tijdelijke sleutels gegenereerd, die slechts enkele uren geldig zijn en worden gevormd op basis van bevestiging van de OpenID-provider. Een lek van dergelijke sleutels na het verstrijken van de geldigheid vormt geen beveiligingsrisico. Standaard is de geldigheidsduur van de sleutel 24 uur, waarna heridentificatie via OpenID vereist is.

De integratie met OpenSSH is gebaseerd op de mogelijkheid om extensies van het SSH-protocol te creëren, waarmee willekeurige gegevens aan SSH-certificaten kunnen worden gekoppeld. Na succesvolle authenticatie via OpenID genereert de client een openbare sleutel waarin een PK-token is opgenomen dat de toewijzing van de sleutel aan de aangegeven gebruiker bevestigt. Het token wordt geïntegreerd in het SSH-protocol via een veld met aanvullende gegevens van het SSH-certificaat. Het creëren van PK-tokens en de controle ervan aan de serverzijde gebeurt met behulp van het cryptografische protocol OpenPubKey.

OpenPubKey stelt u in staat om een openbare sleutel te genereren en deze te koppelen aan een token dat is uitgegeven door de OpenID-provider. Via de digitale handtekening bevestigt de provider dat deze sleutel is gemaakt door de aangegeven geverifieerde gebruiker. Bijvoorbeeld, de OpenID-provider Google kan bevestigen dat de gebruiker is geverifieerd als test@gmail.com. Aan de serverzijde wordt gecontroleerd of het bijgevoegde token door de OpenID-provider is ondertekend en of de digitale handtekening overeenkomt met de opgegeven openbare sleutel, dat wil zeggen dat de server kan bevestigen dat de gebruiker test@gmail.com de openbare sleutel heeft aangemaakt voor de verbonden SSH-client.

Cloudflare heeft opkssh gepubliceerd voor authenticatie in SSH via OpenID Connect

De integratie met OpenSSH is georganiseerd door het opgeven van het programma opkssh in het configuratiebestand "sshd_config" via de directive "AuthorizedKeysCommand" (bijvoorbeeld: "AuthorizedKeysCommand /usr/local/bin/opkssh verify %u %k %t"). De configuratie voor de koppeling van accounts met OpenID vindt plaats aan de SSH-serverzijde. Aan de SSH-klantzijde zijn geen wijzigingen in de instellingen vereist, maar voordat u inlogt, moet het commando "opkssh login" worden uitgevoerd en moet de OpenID-provider worden geselecteerd in het browservenster dat verschijnt, waarna verificatie via deze provider moet plaatsvinden.

De utiliteit opkssh genereert SSH-sleutels en ontvangt een PK-token dat bevestigt dat de gebruiker is geverifieerd en waarmee kan worden gecontroleerd of de gemaakte sleutels toebehoren aan de opgegeven gebruiker. De openbare SSH-sleutel, waaraan het PK-token is gekoppeld via een invoerveld met extra gegevens, zal worden opgeslagen in het bestand ~/.ssh/id_ecdsas en zal worden verzonden bij verbinding met server de utiliteit ssh.

De verbinding met de server wordt gemaakt met de standaard SSH-syntaxis "ssh login@server", waarbij de de server login voorafgaand moet zijn geïdentificeerd met een account in OpenID dat door de gebruiker wordt gebruikt. Op deze manier werkt het proces zodanig dat de SSH-client de openbare sleutel naar de SSH-server verzendt, waarna de server het commando "opkssh verify" uitvoert om de sleutel te verifiëren.

Om een account aan OpenID te koppelen, voert de serveradministrator het commando "opkssh add" uit. Bijvoorbeeld, om inloggen op de server onder de gebruiker "root" met OpenID-verificatie via het account test@gmail.com in Gmail toe te staan, moet de opdracht "sudo opkssh add root test@gmail.com google" worden uitgevoerd, waarna de client zich kan verbinden met de parameters van dit account via het commando "ssh root@host_server".

Je kunt de accountkoppeling ook handmatig uitvoeren via het configuratiebestand /etc/opk/auth_id (of ~/.opk/auth_id), waarin voor het bovenstaande voorbeeld de regel "root test@gmail.com https://accounts.google.com" wordt geschreven. Daarnaast kan via het bestand /etc/opk/providers een lijst met toegestane OpenID-providers, hun parameters en een lijst met goedgekeurde client-id's worden gedefinieerd.

Cloudflare heeft opkssh gepubliceerd voor authenticatie in SSH via OpenID Connect


Bron: opennet.ru
Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers 🔥 Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster