L'azienda Cloudflare ha pubblicato opkssh per l'autenticazione SSH tramite OpenID Connect.

L'azienda Cloudflare ha presentato lo strumento opkssh (OpenPubkey SSH), che integra in OpenSSH strumenti di autenticazione centralizzata, consentendo l'accesso tramite fornitori OpenID Connect. Con opkssh è possibile eliminare il lavoro manuale di gestione e configurazione delle chiavi SSH e organizzare la connessione al server da qualsiasi host, senza dover creare chiavi private su ogni computer client e senza copiare manualmente le chiavi pubbliche sul server. Per connettersi, è sufficiente eseguire sul server la registrazione all'account del fornitore OpenID. Il codice dello strumento è scritto in linguaggio Go e distribuito sotto licenza Apache 2.0.

Opkssh è compatibile con i fornitori OpenID di Google, Microsoft/Azure e Gitlab, consentendo di accedere tramite gli account esistenti nei servizi gmail.com, microsoft.com e gitlab.com. Utilizzando opkssh, invece delle chiavi SSH permanenti, vengono generate chiavi temporanee che sono valide per poche ore e vengono create sulla base della conferma da parte del fornitore OpenID. La fuga di queste chiavi, una volta scadute, non rappresenta una minaccia per la sicurezza. Per impostazione predefinita, la durata della chiave è di 24 ore, dopo di che è necessario identificarsi nuovamente tramite OpenID.

L'integrazione con OpenSSH si basa sulla possibilità di creare estensioni del protocollo SSH, che consentono di allegare dati arbitrari ai certificati SSH. Dopo aver effettuato l'autenticazione tramite OpenID, il client genera una chiave pubblica che contiene un PK-token, a conferma dell'appartenenza della chiave all'utente dichiarato. Il token viene integrato nel protocollo SSH attraverso un campo di dati aggiuntivi del certificato SSH. La creazione di PK-token e la loro verifica sul lato server avviene utilizzando il protocollo crittografico OpenPubKey.

OpenPubKey consente di generare una chiave pubblica e di legarla a un token emesso dal fornitore OpenID. Attraverso la firma digitale, il fornitore conferma che questa chiave è stata creata dall'utente autenticato dichiarato. Ad esempio, il fornitore OpenID Google può confermare che l'utente è stato autenticato come test@gmail.com. Sul lato server si verifica se il token allegato è stato firmato dal fornitore OpenID e se la firma digitale corrisponde alla chiave pubblica dichiarata, cioè il server può verificare che sia stato l'utente test@gmail.com a creare la chiave pubblica per il client SSH connesso.

L'azienda Cloudflare ha pubblicato opkssh per l'autenticazione SSH tramite OpenID Connect.

L'integrazione con OpenSSH è organizzata tramite l'indicazione del programma opkssh nel file di configurazione "sshd_config" attraverso la direttiva "AuthorizedKeysCommand" (ad esempio: "AuthorizedKeysCommand /usr/local/bin/opkssh verify %u %k %t"). La configurazione del legame degli account con OpenID avviene sul lato server SSH. Sul lato client SSH non è necessario alcun cambiamento delle impostazioni, ma prima dell'accesso è necessario eseguire il comando "opkssh login" e nell'apposita finestra del browser selezionare il fornitore OpenID e completare l'autenticazione tramite di esso.

L'utility opkssh genererà chiavi SSH e otterrà un PK-token che conferma che l'utente ha effettuato l'autenticazione e consente di verificare che le chiavi generate appartengano all'utente dichiarato. La chiave pubblica SSH, a cui è allegato il PK-token tramite un campo di dati aggiuntivi, sarà memorizzata nel file ~/ .ssh/id_ecdsas e inizierà a essere trasmessa al momento della connessione a server utilità ssh.

La connessione al server avviene utilizzando il consueto schema SSH "ssh login@server", e durante questo server il login deve prima essere identificato con l'account OpenID utilizzato dall'utente. Così, il funzionamento si riduce al fatto che il client SSH invia al server SSH la chiave pubblica, e il server esegue il comando "opkssh verify" per verificare la chiave.

Per legare un account a OpenID, l'amministratore del server esegue il comando "opkssh add". Ad esempio, per consentire l'accesso al server con l'utente "root" tramite autenticazione OpenID usando l'account test@gmail.com su Gmail, è necessario eseguire "sudo opkssh add root test@gmail.com google", dopo di che il client potrà connettersi con i parametri di questo account eseguendo il comando "ssh root@host_server".

Il legame dell'account può essere eseguito anche manualmente tramite il file di configurazione /etc/opk/auth_id (o ~/ .opk/auth_id), nel quale per l'esempio sopra sarà scritta la stringa "root test@gmail.com https://accounts.google.com". Inoltre, tramite il file /etc/opk/providers è possibile definire un elenco di fornitori OpenID consentiti, le loro impostazioni e l'elenco degli identificatori client approvati.

L'azienda Cloudflare ha pubblicato opkssh per l'autenticazione SSH tramite OpenID Connect.


Fonte: opennet.ru
Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster