Impostazione dei permessi .ssh/config corretti

Setting Proper Ssh Config Permissions



Il protocollo SSH è un protocollo sicuro che viene solitamente utilizzato per connettersi a dispositivi remoti come server e dispositivi di rete, inclusi router e switch. Funziona in una configurazione client-server e, per impostazione predefinita, ascolta sulla porta 22 (anche se questo può essere modificato quando necessario). SSH utilizza diverse tecniche di crittografia e hashing per garantire che la comunicazione tra il client e l'host remoto sia crittografata e al sicuro dalle intercettazioni.

I file SSH sono memorizzati nel .ssh cartella. Questa è una cartella nascosta che risiede nella directory home. Il .ssh la directory non è creata per impostazione predefinita; viene creato quando si avvia una connessione con un host remoto o si utilizza il ssh-keygen comando per generare le chiavi di autenticazione private e pubbliche come quando vuoi impostare l'autenticazione ssh senza password.







Il .ssh cartella. contiene file SSH essenziali come:



  1. Chiavi pubbliche e private ( id_rsa e id_rsa.pub ).
  2. Il host_conosciuti file – Contiene le chiavi pubbliche di tutti i sistemi remoti a cui ti sei connesso.
  3. Il config file di configurazione del cliente

Se la config file non esiste, puoi facilmente crearne uno come mostrato.



$ touch ~/.ssh/config

Il file di configurazione del client .ssh/config

Ogni volta che avvii una connessione SSH, devi specificare dettagli come l'indirizzo IP o il nome di dominio e la porta su cui SSH è in ascolto. Per esempio,

$ ssh [e-mail protetta] -p 22

Può essere frenetico dover ricordare sempre tali dettagli. Ed è qui che ~/.ssh/config file arriva ~/.ssh/config file è un file di configurazione che consente di configurare i dettagli di configurazione per utente dell'host remoto. Ti risparmia l'agonia di dover sempre richiamare i dettagli per host richiesti per la connessione.

Viene visualizzato un file di configurazione di esempio come mostrato.

Server di staging host
Nome host 192.168.2.103
James utente
Porta 22

Un semplice comando SSH nell'host remoto sarebbe il seguente:

$ ssh staging-server

I permessi del file .ssh/config

Per impostazione predefinita, il ~/.ssh/config il file di configurazione del client possiede il 644 permessi dei file. Puoi verificarlo usando il ls -la comando come segue.

$ ls -la ~ / .ssh / config

Ciò implica che il proprietario e il gruppo del file hanno entrambi i permessi di lettura e scrittura (rw) mentre altri utenti hanno solo i permessi di lettura (r).

-rw-rw-r--

NOTA:

Come regola generale, non assegnare mai autorizzazioni di scrittura ad altri utenti. Ciò rappresenta un rischio per la sicurezza del tuo file e altri utenti che non sono te stesso o nel tuo gruppo possono modificare il contenuto del file. L'assegnazione dei permessi di scrittura risulterà nel ' Proprietario o autorizzazioni non validi ' errore come indicato di seguito.

Qui, al file di configurazione sono stati assegnati i permessi 666. Ciò implica che tutti possono leggere e scrivere il file.

Allo stesso modo, lo stesso caso si applica qui in cui al file sono state assegnate le autorizzazioni 777. Ciò implica che tutti possono leggere, scrivere ed eseguire il file. In poche parole, chiunque ha tutti i diritti sul file potenzialmente pericoloso.

La migliore pratica consiglia di lasciare le autorizzazioni predefinite su 664 o 600, dove solo il proprietario ha i permessi di lettura e scrittura (rw). In questo modo, il file rimane al sicuro da modifiche da parte di utenti non autorizzati.

Inoltre, assicurati di essere il proprietario del file. Se il file viene modificato in un altro utente, SSH non sarà in grado di risolvere il nome host fornito nel file di configurazione.

Nell'esempio seguente, il ~/.ssh/config la proprietà è stata impostata su bob: bob.

Per risolvere questo problema, sono tornato alla proprietà del file originale utilizzando il pulsante chown comando.

$ sudo chown james:james ~/.ssh/config

Con i permessi del file ripristinati, ora posso accedere invocando il comando SSH seguito dal nome host specificato nel file di configurazione.

$ ssh staging-server

E questo è tutto ciò che devi sapere sull'impostazione delle autorizzazioni sul ~/.ssh/config file. Assicurati di non impostare le autorizzazioni di lettura per il resto degli utenti e assicurati di essere il proprietario del file.