Несколько похожих записей в конфигурации ssh

Скажем, я хочу настроить параметры ssh для 30 серверов с одинаковой настройкой в ​​моем файле .ssh config:

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

, где единственное, что меняется между этими 30 машинами, - это XXX.

Вместо того, чтобы повторять указанную выше структуру 30 раз в моем файле config, есть ли другой способ определить диапазон машин?

ssh
150 голосов | спросил Amelio Vazquez-Reina 17 Jpm1000000pmThu, 17 Jan 2013 22:47:49 +040013 2013, 22:47:49

5 ответов


176

На странице 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).

Итак:

Host XXX1 XXX2 XXX3
  HostName %h.YYY.com
ответил Ignacio Vazquez-Abrams 17 Jpm1000000pmThu, 17 Jan 2013 23:51:58 +040013 2013, 23:51:58
49

Чтобы свести к минимуму настройку, вы можете использовать .ssh/config, как этот

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 ... может быть заменен на Host *, если каждый хост имеет следующую конфигурацию

ответил Guillaume Vincent 17 12014vEurope/Moscow11bEurope/MoscowMon, 17 Nov 2014 19:34:40 +0300 2014, 19:34:40
33

Просто используйте *

См. man ssh_config:

  

СХЕМА        Шаблон состоит из нуля или нескольких символов без пробелов, '*' (подстановочный знак, который соответствует нулю или более символов) или '?'        (подстановочный знак, который соответствует точно одному символу). Например, чтобы указать набор объявлений для любого хоста в «.co.uk»,        набор доменов, можно использовать следующий шаблон:

       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"
ответил H.-Dirk Schmitt 17 Jpm1000000pmThu, 17 Jan 2013 22:53:23 +040013 2013, 22:53:23
6

это работает для меня:

CanonicalizeHostname да
CanonicalDomains xxx.auckland.ac.nz yyy.auckland.ac.nz

хост * .xxx.auckland.ac.nz
   пользователь myuser
хост * .yyy.auckland.ac.nz
   пользователь myuser

это позволяет использовать имена в домене и изменить имя пользователя:

bluebottle: ~ user_one $ ssh itslogprd05
Пароль [email protected]:
ответил Russell Fulton 31 Jam1000000amTue, 31 Jan 2017 03:50:18 +030017 2017, 03:50:18
6

Из ответов Ignacio Vazquez-Abrams и H.-Dirk Schmitt можно добавить следующее в .ssh /config

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

, а затем, например, вы можете войти в систему как [email protected]

ssh XXX2
ответил Vito Chou 22 ndEurope/Moscowp30Europe/Moscow09bEurope/MoscowFri, 22 Sep 2017 18:45:40 +0300 2017, 18:45:40

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132