GNU/Linux >> Linux Esercitazione >  >> Linux

Come configurare connessioni SSH personalizzate per semplificare l'accesso remoto

SSH (Client SSH ) è un programma per l'accesso remoto a una macchina, consente a un utente di eseguire comandi su un host remoto. È uno dei metodi più consigliati per accedere a un host remoto, poiché è progettato per fornire comunicazioni crittografate sicure tra due host non attendibili su una rete non sicura.

SSH utilizza sia un file di configurazione a livello di sistema che un file di configurazione specifico dell'utente (personalizzato). In questo tutorial spiegheremo come creare un file di configurazione ssh personalizzato e utilizzare determinate opzioni per connettersi a host remoti.

Requisiti:

  1. Devi aver installato il client OpenSSH sul tuo desktop Linux.
  2. Comprendi le opzioni comuni utilizzate per le connessioni remote tramite ssh.

File di configurazione del client SSH

Di seguito sono riportate le posizioni dei file di configurazione del client ssh:

  1. /etc/ssh/ssh_config – questo è il file di configurazione predefinito a livello di sistema. Contiene impostazioni che si applicano a tutti gli utenti della macchina client ssh.
  2. ~/.ssh/config o $HOME/.ssh/config – è il file di configurazione specifico/personalizzato dell'utente. Ha configurazioni che si applicano a un utente specifico. Sostituisce quindi le impostazioni predefinite nel file di configurazione a livello di sistema. Questo è il file che creeremo e utilizzeremo.

Per impostazione predefinita, gli utenti vengono autenticati in ssh utilizzando le password, tuttavia, puoi configurare l'accesso senza password ssh utilizzando ssh keygen in 5 semplici passaggi.

Nota :Nel caso in cui la directory ~/.ssh non esiste sul tuo sistema desktop, crealo con le seguenti autorizzazioni.

$ mkdir -p ~/.ssh
$ chmod 0700 ~/.ssh   

Il chmod comando sopra implica che solo l'utente può avere i permessi di lettura, scrittura ed esecuzione sulla directory come richiesto dalle impostazioni ssh.

Come creare un file di configurazione SSH specifico per l'utente

Questo file di solito non viene creato per impostazione predefinita, quindi è necessario crearlo con i permessi di lettura/scrittura solo per l'utente.

$ touch ~/.ssh/config
$ chmod 0700 ~/.ssh/config

Il file precedente contiene sezioni definite dalle specifiche degli host e una sezione viene applicata solo agli host che corrispondono a uno dei modelli impostati nella specifica.

Il formato convenzionale di ~/.ssh/config è il seguente, e tutte le righe vuote così come le righe che iniziano con ‘#’ sono considerati commenti:

Host    host1
	ssh_option1=value1
	ssh_option2=value1 value2
	ssh_option3=value1 

Host    host2
	ssh_option1=value1
	ssh_option2=value1 value2

Host  *
	ssh_option1=value1
	ssh_option2=value1 value2

Dal formato sopra:

  1. Ospita host1 – è una definizione di intestazione per host1 , è qui che inizia una specifica dell'host e termina con la definizione dell'intestazione successiva, Host host2 fare una sezione.
  2. host1 , host2 sono semplicemente alias host da utilizzare sulla riga di comando, non sono i nomi host effettivi degli host remoti.
  3. Le opzioni di configurazione come ssh_option1=value1 , ssh_option2=valore1 valore2 applicare a un host corrispondente e dovrebbe essere rientrato per una formattazione ben organizzata.
  4. Per un'opzione come ssh_option2=value1 value2 , il valore valore1 viene considerato prima, quindi valore2 .
  5. La definizione dell'intestazione Host * (dove * è un modello (carattere jolly che corrisponde a zero o più caratteri) corrisponderà a zero o più host.

Sempre considerando il formato sopra, questo è il modo in cui ssh legge il file di configurazione. Se esegui un comando ssh per accedere in remoto a host1 così:

$ ssh host1

Il comando ssh sopra farà le seguenti cose:

  1. corrisponde all'alias host host1 nel file di configurazione e applica le opzioni impostate nell'intestazione della definizione, Host host1 .
  2. poi passa alla sezione host successiva, Host host2 e scopre che il nome fornito sulla riga di comando non corrisponde, quindi da qui non vengono utilizzate opzioni.
  3. Procede all'ultima sezione, Host * , che corrisponde a tutti gli host. Qui, applica tutte le opzioni in questa sezione alla connessione host. Ma non può sostituire i valori delle opzioni che erano già utilizzati nelle sezioni precedenti.
  4. Lo stesso vale per host2 .

Come utilizzare il file di configurazione SSH specifico dell'utente

Una volta compreso come funziona il file di configurazione del client ssh, puoi crearlo come segue. Ricordarsi di utilizzare opzioni e valori (alias host, numeri di porta, nomi utente e così via) applicabili al proprio ambiente server.

Apri il file di configurazione con il tuo editor preferito:

$ vi ~/.ssh/config

E definire le sezioni necessarie:

Host fedora25
        HostName 192.168.56.15
        Port 22
        ForwardX11 no

Host centos7
        HostName 192.168.56.10
        Port 22
        ForwardX11 no

Host ubuntu
        HostName 192.168.56.5
        Port 2222
        ForwardX11 yes

Host *
        User tecmint
        IdentityFile ~/.ssh/id_rsa
        Protocol 2
        Compression yes
        ServerAliveInterval 60
        ServerAliveCountMax 20
        LogLevel INFO

Una spiegazione dettagliata delle opzioni di configurazione ssh di cui sopra.

  1. Nome host – definisce il vero nome host a cui accedere, in alternativa è possibile utilizzare un indirizzo IP numerico, inoltre è consentito (sia da riga di comando che in HostName specifiche).
  2. Utente – specifica l'utente con cui accedere come.
  3. Porto – imposta il numero di porta per la connessione sull'host remoto, il valore predefinito è 22 . Usa il numero di porta configurato nel file di configurazione sshd dell'host remoto.
  4. Protocollo – questa opzione definisce le versioni del protocollo che ssh dovrebbe supportare in ordine di preferenza. I valori usuali sono '1' e '2' , più versioni devono essere separate da virgole.
  5. File di identità – specifica un file da cui viene letta l'identità di autenticazione DSA, Ed25519, RSA o ECDSA dell'utente.
  6. AvantiX11 – definisce se le connessioni X11 verranno reindirizzate automaticamente sul canale protetto e sul set DISPLAY. Ha due possibili valori "sì" o "no" .
  7. Compressione – viene utilizzato per impostare la compressione durante la connessione remota con il "yes" valore. L'impostazione predefinita è "no" .
  8. Intervallo ServerAlive – imposta un intervallo di timeout in secondi dopo il quale se non è stata ricevuta alcuna risposta (o dati) dal server, ssh invierà un messaggio attraverso il canale crittografato per richiedere una risposta dal server. Il valore predefinito è 0 , il che significa che nessun messaggio verrà inviato al server o 300 se è stata definita l'opzione BatchMode.
  9. ServerAliveCountMax – imposta il numero di messaggi attivi del server che possono essere inviati senza che ssh riceva alcuna risposta dal server.
  10. Livello registro – definisce il livello di dettaglio utilizzato durante la registrazione dei messaggi da ssh. I valori consentiti includono:QUIET, FATAL, ERROR, INFO, VERBOSE, DEBUG, DEBUG1, DEBUG2 e DEBUG3. E l'impostazione predefinita è INFO.

Il modo standard per connettersi a qualsiasi host Linux remoto (CentOS 7 – nel mio caso), definito nella sezione due del file di configurazione sopra, normalmente digitiamo il comando seguente:

$ ssh -i ~/.ssh/id_rsa -p 22 [email protected]

Tuttavia, con l'uso del file di configurazione del client ssh, possiamo semplicemente digitare il seguente comando:

$ ssh centos7 

Puoi trovare più opzioni ed esempi di utilizzo nella pagina man di configurazione del client ssh:

$man ssh_config

Per ora è tutto, in questa guida ti abbiamo spiegato come utilizzare un file di configurazione client ssh specifico dell'utente (personalizzato) in Linux. Usa il modulo di feedback qui sotto per scriverci in merito a questo articolo.


Linux
  1. Come configurare l'accesso remoto a MySQL in cPanel

  2. Come utilizzare il tunneling SSH per accedere a server con restrizioni

  3. Come configurare l'autenticazione basata su chiave SSH in Linux

  4. Come configurare i caratteri su una connessione X remota (xdmcp vs. Ssh)?

  5. Tunnel vpn di accesso remoto SSH

Come SSH in una directory particolare su Linux

Come configurare l'inoltro X11 utilizzando SSH in Linux

Come configurare un banner SSH personalizzato

Come utilizzare SSH per connettersi a un server remoto

Procedura:Amministrazione remota di FreeBSD

Come configurare il timeout su SSH Client Putty