2012-07-17 1 views
14

Quindi ho un sacco di macchine sulla mia sottorete 10.10.10.x, tutte sono essenzialmente configurate allo stesso modo. Le differenziamo dalle macchine sulla mia sottorete 10.10.11.x che ha uno scopo diverso.ssh-config dalla subnet dell'host

Mi piacerebbe essere in grado di digitare 'ssh 10.x' per connettersi alle macchine sulla rete 10. e 'ssh 11.x' per connettersi alle macchine sulla rete 11.

So che posso impostazione singole macchine per consentire l'accesso alla piena ip, o la versione abbreviata come questo nel mio ~/.ssh/config:

Host 10.10.10.11 10.11 
HostName 10.10.10.11 
User root 

Questo può diventare piuttosto ripetitivo per un sacco di ospiti sulla mia rete, quindi la mia domanda è: esiste un modo per specificare questo come un modello, per l'intera sottorete, qualcosa di simile:

Host 10.10.10.x 
User root 

Host 10.x 
HostName 10.10.10.x 
User root 

Grazie

risposta

14

questa linea fornisce la funzionalità desiderata:

Host 192.168.1.* 
IdentityFile KeyFile 

Se si tenta di connettere un server il cui IP è in questa sottorete, si sarà in grado di stabilire una connessione SSH.

+0

Questo fondamentalmente funziona come voglio, ma c'è un modo per accedere alla parte '*', ad esempio il mio caso di utilizzo sopra di voler mappare un certo intervallo in un Nome host per modello? – jdeuce

+0

Ho dovuto usare 'Host 192.168.1.?' invece in OS X –

12

Dal Manpage:

Un modello è costituito da zero o più caratteri non-spazio, da ‘*’ (un jolly che corrisponde a zero o più caratteri), o ‘?’ (Un jolly che esattamente un unico carattere). Ad esempio, per specificare un insieme di decla- razioni per qualsiasi host nel set di “.co.uk” dei domini, il seguente PAT- terna potrebbe essere utilizzato:

 Host *.co.uk 

The following pattern would match any host in the 192.168.0.[0-9] network 
range: 

     Host 192.168.0.? 

A pattern-list is a comma-separated list of patterns. Patterns within 
pattern-lists may be negated by preceding them with an exclamation mark 
(‘!’). For example, to allow a key to be used from anywhere within an 
organisation except from the “dialup” pool, the following entry (in 
authorized_keys) could be used: 

     from="!*.dialup.example.com,*.example.com" 

così puoi semplicemente usare host 10.*