Italiano

Strumenti per sviluppatori · Calcolatore Chmod

SSH permessi troppo aperti: le modalità esatte di cui ~/.ssh ha bisogno e perché

· Perché è importante

chmod unix controllo degli accessi

materiale privato SSH mostrato come un diagramma di bit di autorizzazione Unix distinto
Illustrazione vettoriale originale ToolAcre

OpenSSH rifiuta chiavi e file Authorized_Keys che altri utenti potrebbero leggere o modificare. Questo post elenca le modalità previste, spiega il controllo StrictModes e mostra come verificarle.

Le autorizzazioni 0644 per id_ed25519 sono troppo aperte: la chiave che ha funzionato ieri viene rifiutata dopo una copia su una nuova macchina

Una chiave privata copiata con modalità 0644 viene decodificata in rw-r--r--. Il proprietario può leggerlo e modificarlo, mentre il gruppo e altri possono leggerlo. La preimpostazione del file privato 600 esegue invece il rendering di rw-------, lasciando quelle classi vuote. Questo indica i bit in modo preciso, ma non può dimostrare perché un client SSH ha accettato o rifiutato la chiave.

Confronta la modalità osservata con la preimpostazione privata. Gli input 0644, 644 e 0o644 sono equivalenti e il passaggio a 600 rimuove la lettura del gruppo e la lettura degli altri preservando la lettura e la scrittura del proprietario. Il comando generato è inerte. Il comportamento del client, la proprietà, gli ACL e la semantica di archiviazione richiedono prove oltre questo convertitore.

Perché il client effettua un controllo: una chiave privata leggibile da altri non è più privata, quindi ssh si rifiuta di fidarsi di essa

Il repository etichetta 600 "file privato" e descrive l'accesso riservato al solo proprietario. La sua aritmetica supporta quella descrizione: 6 dà al proprietario la lettura e la scrittura, mentre entrambi gli zeri rimuovono le autorizzazioni ordinarie dal gruppo e da altro. Il risultato simbolico è rw-------. Ciò dimostra che le sovvenzioni sono assenti dalla modalità, non che un cliente le accetti.

Nelle origini non viene visualizzato alcun messaggio di implementazione, manuale, configurazione o runtime di OpenSSH, quindi la preimpostazione non può stabilire una politica di rifiuto. La calcolatrice non promette né che una modalità risolva ogni errore né convalidi i contenuti chiave. Mostra in modo affidabile se un candidato espone la lettura, la scrittura o l'esecuzione oltre la classe proprietaria e non di più.

Il repository etichetta 600 privato; la politica di rifiuto del cliente necessita di prove OpenSSH

Il comportamento StrictModes non è né implementato né verificato qui. Il browser non dispone di server SSH, ispezione della directory home, ricerca della proprietà o input di configurazione. Non può sapere se autorizzato_keys viene consultato, se un'altra identità può scrivere una directory o se si applica un'impostazione. L'accesso a una modalità esegue la conversione, non una decisione del demone o un controllo del filesystem.

Bit accurati e policy accurate sono questioni separate. La modalità 600 dimostra rw-------, mentre 700 dimostra rwx------. Nessuno dei due identifica la proprietà, controlla le directory principali o modella un demone. Raccogli la documentazione del server e le prove del file system in modo indipendente, quindi utilizza il calcolatore per decodificare le osservazioni senza presentare l'output come verdetto StrictModes o controllo di sicurezza completo.

Il comportamento StrictModes non è implementato o verificato qui

Le modalità 600 e 700 sono preimpostazioni private fornite. La modalità 600 consente al normale proprietario del file di leggere e scrivere, senza gruppi o altre autorizzazioni. La modalità 700 aggiunge l'esecuzione del proprietario per una directory, consentendo l'immissione e l'accesso al contenuto denominato, mentre le altre classi non ricevono nulla tramite bit ordinari. La calcolatrice non conosce ancora alcun proprietario effettivo.

Altre regole file correlate a SSH rimangono esterne. Sebbene le chiavi pubbliche e autorizzate_keys possano essere rilevanti, il repository non fornisce requisiti verificati per esse. La calcolatrice può decodificare 644 come rw-r--r-- ma non può certificare l'accettazione di SSH. Qualsiasi tabella di requisiti più ampia necessita di prove OpenSSH autorevoli assenti da queste fonti e dall'articolo esistente.

600 e 700 vengono forniti con preimpostazioni private; le altre regole del file SSH rimangono esterne

Un esempio supportato converte le stringhe di elenco senza controllare una directory. Se l'output esterno mostra -rw-r--r--, il parser restituisce 644; se mostra rw-------, restituisce 600. La matrice evidenzia le caselle di lettura del gruppo e di altre letture modificate. Ciò verifica la trascrizione e l'aritmetica lasciando non esaminati il ​​percorso, la proprietà e l'elenco della provenienza.

Le stringhe di directory funzionano in modo simile. Un drwx fornito------ diventa 700 perché il carattere del tipo riconosciuto viene rimosso prima di analizzare nove posizioni di autorizzazione. Il riepilogo può visualizzare un prefisso di directory. La pagina non elenca ~/.ssh né rileva file, proprietari o indicatori ACL, quindi questa conversione non deve essere descritta come un controllo.

Esempio realizzato: convertire stringhe di modalità copiate senza controllare la directory

La perdita di modalità tra gli strumenti di trasferimento e i filesystem non è documentata dal repository. Nessuna origine copia file, apre archivi, monta spazio di archiviazione o confronta metadati tra posizioni. Il calcolatore non può attribuire un 644 osservato a una condivisione, un'unità, un sistema di inizializzazione o un'utilità di archiviazione. Vede solo la modalità digitata nel suo campo, senza cronologia dei trasferimenti.

Quando un elemento copiato presenta una modalità inaspettata, confronta i valori attesi e osservati senza attribuire la colpa. Tra 600 e 644, le autorizzazioni del proprietario rimangono invariate mentre vengono visualizzate la lettura di gruppo e quella di altri. Il convertitore supporta quel delta esatto. Per determinare se il trasferimento, la conservazione o la ricreazione siano stati causati, è necessaria la prova della destinazione e del percorso di trasferimento.

La perdita di modalità tra strumenti di trasferimento e filesystem non è provata dal repository

Il formato della chiave, lo stato dell'agente e i log del server non rientrano in questo calcolatore. Analizza il testo dei permessi ottali e simbolici, mai le chiavi private, i dati o i log di ssh-agent. Una conversione 600 valida non dice nulla sul materiale crittografico, sulle identità caricate, sullo scambio di rete o sulla risposta del server. Dimostra che solo il proprietario legge e scrive con un gruppo vuoto e altre classi.

Questo limite impedisce di considerare ogni errore SSH come un lavoro chmod. Se una modalità osservata differisce dalla preimpostazione privata, la calcolatrice mostra i bit esatti; se corrisponde già, il percorso non offre ulteriori prove SSH. Continuare con la diagnostica esterna anziché ampliare l’accesso. Una conversione riuscita non costituisce un'autenticazione e l'anteprima non esegue nulla.

Takeaway: privato significa 600 e 700 — e la calcolatrice conferma che una modalità che stai per impostare non dà nulla al gruppo o ad altri

La conclusione supportata dal repository è che 600 e 700 riservano le autorizzazioni ordinarie per il proprietario. Le loro forme simboliche, rw------- e rwx------, non contengono alcun gruppo o altre sovvenzioni. Il testo ottale, simbolico, le caselle di controllo e il riepilogo verificano tali rappresentazioni, mentre le posizioni non corrette vengono rifiutate. Niente di tutto ciò dimostra l'accettazione, la proprietà, la validità della chiave o l'autenticazione di SSH.

Non trasformare la conversione in una norma SSH universale. Il percorso non implementa StrictModes, ispeziona le directory home, identifica i proprietari o convalida i file chiave. Usalo per confermare il gruppo vuoto e altre classi, quindi affidati alle prove autorevoli SSH e al sistema reale. La copia di un comando visualizzato trasferisce la responsabilità alla shell e al filesystem.