GNU/Linux >> Linux Esercitazione >  >> Linux

Usa il file di configurazione SSH per gestire le connessioni SSH a vari server remoti

Se hai anche un po' di familiarità con SSH, sai che puoi usarlo per connetterti a sistemi Linux remoti.

Usare SSH per connettersi al sistema remoto è semplice. Tutto quello che devi fare è usare un comando come questo:

ssh [email protected]_IP 

Questo si collega alla porta SSH predefinita 22. Puoi anche specificare la porta, se lo desideri.

Ora è tutto chiaro e semplice se hai solo un server. Anche se non ricordi l'indirizzo IP del server, puoi eseguire una ricerca inversa nella cronologia utilizzando la famosa scorciatoia da tastiera del terminale Ctrl+R e trovare il comando SSH che hai utilizzato in passato.

Ma le cose si complicano quando hai diversi server da gestire. Ho una decina di server a cui mi collego di tanto in tanto. Alcuni sono server di produzione e altri sono server di prova.

Ora tenere traccia di questi server non è facile. Anche se riesco a trovare i comandi SSH dalla cronologia, è difficile indovinare quale IP appartenga a quale server.

Ovviamente posso aprire le mie dashboard su Linode, UpCloud, DigitalOcean e Google Cloud per ottenere l'IP o mantenere un elenco sul mio sistema locale.

Un modo migliore e più semplice è utilizzare il file di configurazione SSH.

Utilizzo del file di configurazione SSH per connettersi facilmente a server remoti

Il file di configurazione SSH consente di creare profili diversi per diverse configurazioni host. Non c'è limite a tali profili e puoi aggiungerne il maggior numero possibile.

Quindi, se ti connetti a più sistemi remoti tramite SSH, la creazione di profili SSH sarà una buona mossa per risparmiare tempo.

Lascia che ti mostri come usarlo.

Fase 1:crea il file di configurazione SSH

Quando installi SSH, avrai una directory ~/.ssh creata automaticamente. Questa diretta contiene la tua chiave pubblica, la chiave privata un file known_hosts. Anche la tua configurazione è archiviata qui.

Almeno su Ubuntu, il file di configurazione SSH non viene creato per impostazione predefinita. Puoi facilmente creare questo file usando il comando touch in questo modo:

touch ~/.ssh/config

Fase 2:aggiungi un profilo SSH nel file di configurazione

Ora che hai il file di configurazione SSH, puoi modificarlo usando Vim o Nano. Lascia che ti mostri un esempio della sintassi che dovresti seguire.

Diciamo che ti connetti a un server con IP 275.128.172.46. Il tuo nome utente è Alice e il server viene utilizzato per ospitare il tuo sito web. Per rafforzare la sicurezza SSH, utilizzi la porta 1500 invece della porta SSH predefinita 22.

Puoi aggiungere tutte queste informazioni nel modo seguente nel tuo file ~/.ssh/config:

Host website
        Hostname 275.128.172.46
        User alice
        Port 1500

Basta salvare le informazioni nel file. Non è necessario riavviare alcun servizio.

Ora, invece di scrivere un comando lungo come questo:

ssh [email protected] -p 1500

Puoi semplicemente usare questo comando (funziona anche il completamento delle schede):

ssh website

Quando esegui il comando precedente, ssh cerca un sito Web denominato Host in ~/.ssh/config. Se trova un host con quel nome, ottiene tutte le informazioni relative e le utilizza per creare una connessione SSH.

Potresti chiederti alcune cose, quindi te ne parlerò qui:

  • Non ci sono restrizioni per lo spazio o il rientro delle tabulazioni durante l'immissione delle informazioni sull'host. Lo spazio o il rientro di tabulazione sono usati per rendere il file di configurazione facilmente comprensibile.
  • Il nome host può essere l'indirizzo IP del server o un nome host che può essere risolto sulla tua rete.
  • Tutti i parametri come nome host, utente e porta sono opzionali. Tuttavia, personalmente consiglio di mantenere almeno il nome host perché è ciò di cui hai bisogno (e dimentichi) la maggior parte del tempo.
  • Se il file di configurazione SSH è configurato in modo errato, si verificherà un errore quando si tenta di utilizzarlo per la connessione SSH.
  • Non è possibile salvare le password nella configurazione SSH. Ti consiglio di aggiungere la tua chiave SSH pubblica al server per un facile accesso.

Passaggio 3:aggiunta di più profili nel file di configurazione SSH

Il passaggio precedente ti ha dato un'idea su come aggiungere un profilo SSH. Andiamo al passaggio successivo aggiungendo più profili al suo interno.

Ecco come appare ora il file di configurazione SSH:

Host website
        Hostname 275.128.172.46
        User alice
        Port 1500
Host forum-server
        Hostname 275.128.172.47
        User alice

Host main-server
        Hostname 275.128.172.49

Host common-test-server
        Hostname test-server

Host *
        User root

Questa volta, ho aggiunto quattro diversi profili SSH.

Hai notato l'Host * voce alla fine del file? Puoi utilizzare questa voce per aggiungere un parametro comune a tutti i profili se tale parametro non è stato menzionato esplicitamente per il profilo.

Quindi, se provo a utilizzare il profilo SSH del server principale, prenderà automaticamente l'utente root.

server-principale ssh =esempio [email protected]

Ordine della configurazione SSH

La configurazione ssh segue il seguente ordine:

  • Opzioni della riga di comando
  • file di configurazione dell'utente (~/.ssh/config)
  • file di configurazione a livello di sistema (/etc/ssh/ssh_config)

Ciò significa che viene data la priorità al comando immesso e quindi cerca in ~/.ssh/config e quindi in /etc/ssh/ssh_config.

Quindi, se vuoi sovrascrivere un profilo, puoi farlo usando l'opzione -o del comando ssh.

Ad esempio, se utilizzo questo comando:

ssh -o "User=bob" website

Ci vorrà l'utente bob invece dell'utente alice come definito in ~/.ssh/config (nel passaggio precedente).

C'è molto di più nella configurazione SSH

Ad essere onesti, c'è molto di più nel file di configurazione SSH che non può essere trattato in un singolo articolo. Puoi utilizzare la corrispondenza nome/IP, sottoreti e altro.

Lo scopo di questo articolo era di presentarti alla configurazione SSH e aiutarti a creare profili SSH per connetterti facilmente a vari sistemi Linux remoti.

Puoi sempre fare riferimento alla pagina man di ssh_config per saperne di più sui parametri che puoi utilizzare durante la creazione del tuo file di configurazione SSH.

Spero che questo suggerimento SSH ti sia stato utile. Se utilizzi già il file di configurazione SSH e hai qualche consiglio ingegnoso con te, condividilo con il resto di noi nella sezione commenti.


Linux
  1. Come configurare connessioni SSH personalizzate per semplificare l'accesso remoto

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

  3. Come utilizzare il comando SFTP per il trasferimento di file sicuro

  4. Ssh - Correggere le impostazioni del file di configurazione Ssh per eseguire il tunneling su una terza macchina?

  5. controlla se il file esiste sull'host remoto con ssh

Come utilizzare il comando SCP per il trasferimento di file

Utilizzo del file di configurazione SSH

Come utilizzare SSHFS per montare directory remote su SSH

Tutorial completo su come impostare chiavi SSH e connessioni SSH

SSHFS:montaggio di un file system remoto su SSH

Come utilizzare SSH per connettersi a un server remoto