desenv-web-rp.com

Várias entradas semelhantes na configuração do ssh

Digamos que eu queira configurar minhas opções ssh para 30 servidores com a mesma configuração no meu .sshconfig arquivo:

Host XXX
     HostName XXX.YYY.com
     User my_username
     Compression yes
     Ciphers arcfour,blowfish-cbc
     Protocol 2
     ControlMaster auto
     ControlPath ~/.ssh/%[email protected]%h:%p
     IdentityFile ~/.ssh/YYY/id_rsa

onde a única coisa que muda entre essas 30 máquinas é XXX.

Em vez de repetir a estrutura acima 30 vezes no meu arquivo config, existe outra maneira de definir um intervalo de máquinas?

208
Amelio Vazquez-Reina

Na página de manual ssh_config(5):

 Host    Restricts the following declarations (up to the next Host key‐
         Word) to be only for those hosts that match one of the patterns
         given after the keyword.  If more than one pattern is provided,
         they should be separated by whitespace.

...

 HostName
         Specifies the real Host name to log into.  This can be used to
         specify nicknames or abbreviations for hosts.  If the hostname
         contains the character sequence ‘%h’, then this will be replaced
         with the Host name specified on the commandline (this is useful
         for manipulating unqualified names).

Assim:

Host XXX1 XXX2 XXX3
  HostName %h.YYY.com
254
Ignacio Vazquez-Abrams

Para minimizar a configuração, você pode ter um .ssh/config como este

Host X01
    HostName X01.YYY.com

Host X02
    HostName X02.YYY.com

...

Host X01 X02 ...
     User my_username
     Compression yes
     Ciphers arcfour,blowfish-cbc
     Protocol 2
     ControlMaster auto
     ControlPath ~/.ssh/%[email protected]%h:%p
     IdentityFile ~/.ssh/YYY/id_rsa

Host X01 X02 ... pode ser substituído por Host * se cada host tiver a seguinte configuração

88
Guillaume Vincent

Basta usar *

Vejo man ssh_config:

PADRÕES Um padrão consiste em zero ou mais caracteres que não sejam espaços em branco, '*' (um curinga que corresponde a zero ou mais caracteres) ou '?' '(Um curinga que corresponde exatamente a um caractere). Por exemplo, para especificar um conjunto de declarações para qualquer host no conjunto de domínios ".co.uk", o seguinte padrão pode ser usado:

       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"
56
H.-Dirk Schmitt

Das respostas de Ignacio Vazquez-Abrams e H.-Dirk Schmitt, pode-se adicionar o seguinte a .ssh/config

Host XXX*
    HostName %h.YYY.com
    User myname

e, por exemplo, você pode fazer login como [email protected]

ssh XXX2
12
Vito Chou

isso funciona para mim:

 CanonicalizeHostname sim 
 CanonicalDomains xxx.auckland.ac.nz aaa.auckland.ac.nz 
 
 Anfitrião * .xxx.auckland.ac.nz 
 usuário myuser 
 Host * .aaa.auckland.ac.nz 
 usuário myuser 

isso permite usar nomes no domínio e alterar o nome de usuário:

 bluebottle: ~ user_one $ ssh itslogprd05 
 [email protected] senha do usuário: 
8
Russell Fulton

A seguinte maneira funciona.

Host 10.10.* 10.11.*
     User vagrant
0
edib