androide

Utilizzando il file di configurazione ssh

Come controllare il pc da remoto con SSH [GUIDA]

Come controllare il pc da remoto con SSH [GUIDA]

Sommario:

Anonim

Un'opzione sarebbe quella di creare un alias bash per ogni connessione al server remoto. Tuttavia, esiste un'altra soluzione, molto migliore e più semplice a questo problema. OpenSSH consente di impostare un file di configurazione per utente in cui è possibile memorizzare diverse opzioni SSH per ogni macchina remota a cui ci si connette.

Questa guida illustra le basi del file di configurazione del client SSH e spiega alcune delle opzioni di configurazione più comuni.

Prerequisiti

Supponiamo che tu stia utilizzando un sistema Linux o macOS con il client OpenSSH installato.

Posizione del file di configurazione SSH

Il file di configurazione sul lato client di OpenSSH è chiamato config ed è archiviato nella directory .ssh nella home directory dell'utente.

La directory ~/.ssh viene creata automaticamente quando l'utente esegue il comando ssh per la prima volta. Se la directory non esiste sul tuo sistema, creala usando il comando seguente:

mkdir -p ~/.ssh && chmod 700 ~/.ssh

Per impostazione predefinita, il file di configurazione SSH potrebbe non esistere, pertanto potrebbe essere necessario crearlo utilizzando il comando touch:

touch ~/.ssh/config

Questo file deve essere leggibile e scrivibile solo dall'utente e non accessibile da altri:

chmod 600 ~/.ssh/config

Struttura e schemi dei file di configurazione SSH

Il file di configurazione SSH ha la seguente struttura:

Host hostname1 SSH_OPTION value SSH_OPTION value Host hostname2 SSH_OPTION value Host * SSH_OPTION value

Il contenuto del file di configurazione del client SSH è organizzato in stanze (sezioni). Ogni stanza inizia con la direttiva Host e contiene opzioni SSH specifiche che vengono utilizzate quando si stabilisce una connessione con il server SSH remoto.

Il rientro non è necessario ma è consigliato poiché semplifica la lettura del file.

La direttiva Host può contenere un pattern o un elenco di pattern separato da spazi bianchi. Ogni modello può contenere zero o più caratteri non bianchi o uno dei seguenti identificatori di modello:

  • * - Corrisponde a zero o più caratteri. Ad esempio, Host * corrisponde a tutti gli host, mentre 192.168.0.* Corrisponde agli host nella sottorete 192.168.0.0/24 . ? - Abbina esattamente un personaggio. Il modello, Host 10.10.0.? corrisponde a tutti gli host in 10.10.0. gamma. ! - Se utilizzato all'inizio di un modello, annulla la corrispondenza. Ad esempio, l' Host 10.10.0.* !10.10.0.5 corrisponde a qualsiasi host nella sottorete 10.10.0.5 tranne 10.10.0.5 .

Il client SSH legge la stanza del file di configurazione in base alla stanza e, se più di un modello corrisponde, le opzioni della prima stanza corrispondente hanno la precedenza. Pertanto, all'inizio del file devono essere fornite più dichiarazioni specifiche dell'host e sostituzioni più generali alla fine del file.

Puoi trovare un elenco completo delle opzioni ssh disponibili digitando man ssh_config nel tuo terminale o visitando la pagina man ssh_config.

Il file di configurazione SSH viene letto anche da altri programmi come scp , sftp e rsync .

Esempio di file di configurazione SSH

Ora che abbiamo coperto la base del file di configurazione SSH, diamo un'occhiata al seguente esempio.

In genere, quando ci si connette a un server remoto tramite SSH, è necessario specificare il nome utente remoto, il nome host e la porta. Ad esempio, per accedere come utente di nome john a un host chiamato dev.example.com sulla porta 2322 dalla riga di comando, digitare:

ssh [email protected] -p 2322

Per connettersi al server utilizzando le stesse opzioni fornite nel comando precedente semplicemente digitando ssh dev , inserire le seguenti righe nel file "~/.ssh/config :

~ /.Ssh / config

Host dev HostName dev.example.com User john Port 2322

Ora quando si digita ssh dev , il client ssh leggerà il file di configurazione e utilizzerà i dettagli di connessione specificati per l'host dev :

ssh dev

Esempio di file di configurazione SSH condiviso

Questo esempio fornisce informazioni più dettagliate sui modelli host e sulla precedenza delle opzioni.

Prendiamo il seguente file di esempio:

Host targaryen HostName 192.168.1.10 User daenerys Port 7654 IdentityFile ~/.ssh/targaryen.key Host tyrell HostName 192.168.10.20 Host martell HostName 192.168.10.50 Host *ell user oberyn Host * !martell LogLevel INFO Host * User root Compression yes

  • Quando si digita ssh targaryen , il client ssh legge il file e applica le opzioni dalla prima corrispondenza, ovvero Host targaryen . Quindi controlla le stanze successive una ad una per un modello corrispondente. Il prossimo corrispondente è Host * !martell (che significa tutti gli host tranne martell ) e applicherà l'opzione di connessione da questa stanza. Anche l'ultima definizione Host * corrisponde, ma il client ssh accetterà solo l'opzione Compression perché l'opzione User è già definita nella stanza Host targaryen .

    L'elenco completo delle opzioni utilizzate quando si digita ssh targaryen è il seguente:

    HostName 192.168.1.10 User daenerys Port 7654 IdentityFile ~/.ssh/targaryen.key LogLevel INFO Compression yes

    Quando si esegue ssh tyrell i pattern host corrispondenti sono: Host tyrell , Host *ell , Host * !martell e Host * . Le opzioni utilizzate in questo caso sono:

    HostName 192.168.10.20 User oberyn LogLevel INFO Compression yes

    HostName 192.168.10.50 User oberyn Compression yes

    Per tutte le altre connessioni, il client ssh utilizzerà le opzioni specificate nelle sezioni Host * !martell e Host * .

Sostituisci opzione file di configurazione SSH

Il client ssh legge la sua configurazione nel seguente ordine di precedenza:

  1. Opzioni specificate dalla riga di comando. Opzioni definite in ~/.ssh/config Opzioni definite in /etc/ssh/ssh_config .

Host dev HostName dev.example.com User john Port 2322

e vuoi usare tutte le altre opzioni ma per connetterti come utente root anziché john semplicemente specifica l'utente sulla riga di comando:

ssh -o "User=root" dev

L'opzione -F ( configfile ) consente di specificare un file di configurazione alternativo per utente.

Per dire al client ssh di ignorare tutte le opzioni specificate nel file di configurazione ssh, usare:

ssh -F /dev/null [email protected]

Conclusione

Ti abbiamo mostrato come configurare il tuo file di configurazione ssh dell'utente. È inoltre possibile impostare un'autenticazione basata su chiave SSH e connettersi ai server Linux senza immettere una password.

Per impostazione predefinita, SSH è in ascolto sulla porta 22. La modifica della porta SSH predefinita aggiunge un ulteriore livello di sicurezza al server riducendo il rischio di attacchi automatici.

terminale ssh