Come Gestire un SSH File di configurazione in Windows e Linux

0
316

Il file di configurazione di SSH consente di definire le impostazioni specifiche per ogni host SSH che rende la connessione all’host molto più facile. Mediante la definizione di molti di questi comuni o non comuni, di proprietà all’interno del file, elimina la necessità di ricordare questo parametro è impostato ogni volta che è necessaria una connessione.

La definizione di una Connessione SSH

Se il file ~/.ssh/config non esiste, si potrebbe andare avanti e creare questo ora. In genere, questo file esiste in .ssh directory “nascosta”, nascosto solo perché la maggior parte dei sistemi operativi non mostrare le directory preceduta da una .. Inoltre, questa directory è di solito si trova nella home directory, o la directory home dell’utente che esegue ssh, quindi il ~ notazione, a significare la home directory.

È importante mantenere un occhio su di autorizzazioni entro il .ssh cartella. La maggior parte client SSH desidera che il file da modalità di 600 all’interno di questa cartella. Se il riferimento a questa cartella dal Sottosistema di Windows per Linux, è necessario assicurarsi di chmod 600 ~\.ssh\*

Così, che cosa fa una semplice connessione SSH aspetto con questo file? Un esempio di una semplice configurazione è al di sotto.

Ospitare il mio-ssh-host
HostName 10.0.0.5
La porta 22
Utente myuser

Come si può capire dalla configurazione di cui sopra, questo è quanto di base, come si può ottenere. Infatti, è possibile omettere la Porta come se non strettamente necessario, perché il 22 è il valore predefinito della porta SSH. Definendo questa connessione, la linea di comando, si può semplicemente eseguire le operazioni seguenti.

ssh mio-ssh-host

La connessione è di solito la richiesta di una password, come una connessione SSH non dovrebbe essere protetto.

Chiavi Pubbliche/Private

Quasi ogni SSH tutorial o guida di installazione là fuori si fanno in genere riferimento a chiavi pubbliche/private in un punto o in un altro. Questi sono il modo migliore per impostare una connessione SSH. Invece di una password che può essere violato o indovinato, è necessario per ottenere il file di chiave. Questo tutorial è che non va in come creare quelli, quindi supponiamo che già esiste ed è correttamente impostato. Come facciamo a dire che il nostro host configurazione per utilizzare questo file?

Ospitare il mio-ssh-host
HostName 10.0.0.5
La porta 22
Utente myuser
IdentityFile ~/.ssh/id_ed25519_myuser
IdentitiesOnly sì

Ci sono due nuovi comandi che abbiamo presentato. Il IdentityFile e il IdentitiesOnly comandi. Prima di tutto, dobbiamo dire SSH in cui il file di chiave, in questo caso abbiamo memorizzato il file .ssh directory (diffidare di autorizzazioni). In secondo luogo, abbiamo definito un tag chiamato IdentitiesOnly. Questo dirà SSH per non provare ogni identità di file all’interno di quella cartella, ma solo quello definito. Per impostazione predefinita, SSH piedi e cercare tutti i file di identità fino a quando non trova quella giusta. Spesso questo porta a “Troppi errori di autenticazione per l’utente myuser” sul server di destinazione se ci sono un sacco di identità.

Configurazioni Complesse

Ci sono molti scenari che si potrebbe coprire in questo articolo, ma andiamo su di un paio di comuni e di quelli utili.

ForwardAgent

Che cosa succede se si dispone di uno scenario in cui avete aperto una connessione SSH ad un server di destinazione, che deve poi fare un altro collegamento SSH ad un server differente da quello originale server di destinazione? Si potrebbe pensare che avete bisogno di memorizzare quelle stesse chiavi SSH sul server di destinazione per rendere il prossimo hop. C’è un comando, giustamente chiamato ForwardAgent, che permette di “in avanti” locale tasti per il prossimo server hop.

Ospitare il mio-ssh-host
HostName 10.0.0.5
La porta 22
Utente myuser
IdentityFile ~/.ssh/id_ed25519_myuser
IdentitiesOnly sì
ForwardAgent sì

ProxyJump

Simile a ForwardAgent, spesso è necessario per aprire un secondario connessione SSH direttamente attraverso un primo (o secondo) di destinazione. Molte volte, questo è perché una macchina può essere dotata di firewall fuori da internet, ma dispone di una connessione a un “salto di dialogo” che quindi permette di aprire una connessione sul firewall del server. A partire da SSH versione 7.3 e superiori, la ProxyJump comando ci permette di realizzare questo.

Ospitare il mio-ssh-host
HostName 10.0.0.5
La porta 22
Utente myuser
IdentityFile ~/.ssh/id_ed25519_myuser
IdentitiesOnly sì
ForwardAgent sì
ProxyJump myuser@10.0.0.6:22,myuser2@10.0.0.7:10005

Come si è visto sopra, ci sono due server qui. Inizialmente, la connessione SSH andrà a 10.0.0.5 ma poi subito aprire una connessione a 10.0.0.6, poi si potrà finalmente aprire una connessione con un altro utente e porta a 10.0.0.7.

SSH Tunnel Proxy

Che cosa se avete la necessità di impostare un SOCKSv5 tunnel? Così facendo è abbastanza facile utilizzando il file di configurazione. Stiamo introducendo tre nuovi comandi qui, DynamicForward, ControlMaster, e ControlPath.

Ospitare il mio-ssh-host
HostName 10.0.0.5
La porta 22
Utente myuser
IdentityFile ~/.ssh/id_ed25519_myuser
IdentitiesOnly sì
DynamicForward 8080
ControlMaster auto
ControlPath ~/.ssh/%r@%h:%p

Il DynamicForward comando è la porta che ci sono in realtà cercando di proxy attraverso la nostra connessione SSH, ad esempio la porta 8080. ControlMaster è impostato su auto, il che significa che se esiste una connessione, quindi uso quella, ma se non crearne uno nuovo. Infine, il ControlPath imposta la posizione di effettiva presa di file. In questo caso, si utilizza il formato di denominazione %r@%h:%p che corrisponde a myuser@10.0.0.5:22 in questo connessioni caso.

Conclusione

C’è un sacco di potenza in SSH file di Configurazione. Molto più complesso esempi possono essere definiti, oltre alla facilità di definire diversi host all’interno di una singola posizione. Così facendo, non solo le connessioni host ben documentato, ma che permettono un facile e rapido accesso alla riga di comando. Se si sceglie di mettere questo file sotto controllo di versione, si aggiunge la possibilità di avere una storia in esecuzione dei padroni di casa e potenzialmente risparmiare un gran mal di testa in futuro. Come si può dire, SSH file di configurazione rende la definizione di SSH host facile!