Скажем, я хочу настроить 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/%r@%h:%p
IdentityFile ~/.ssh/YYY/id_rsa
где единственное, что меняется между этими 30 машинами, это XXX
.
Вместо повторения описанной выше структуры 30 раз в моем config
файле, есть ли другой способ определить диапазон машин?
%h
функция появилась в выпуске 5.6 OpenSSH . Мне было интересно, почему я этого раньше не видел - версия в Debian Squeeze - 5.5.config
, вы всегда можете просто написать простой скрипт, который сгенерирует вашconfig
.Чтобы свести к минимуму настройки, вы можете иметь
.ssh/config
такойHost X01 X02 ...
можно заменить,Host *
если каждый хост имеет следующую конфигурациюисточник
Host X01 X02 ...
заменить на*.YYY.com
? Это кажется немного более управляемым, если это работает.Просто использовать
*
Смотрите
man ssh_config
:источник
?
там, где я хочу, чтобы он был заменен шаблоном, соответствующим*
знаку?config
записи, но параметры хоста являются фиксированными (то есть шаблоны не могут использоваться для шаблонирования параметров). Я ошибаюсь?Host *
запись и иметь отдельную запись для каждой,Host XXX
которая состоит только из частей, которые меняются (то естьHostname XXX.YYY.ZZZ
строки).Из ответов Игнасио Васкеса-Абрамса и Х.-Дирка Шмитта можно добавить следующее в .ssh / config
а затем, например, вы можете войти как myname@XXX2.YYY.com
источник
%h
, а не%h.YYY.com
это работает для меня:
это позволяет использовать имена в домене и изменить имя пользователя:
источник
itslogprd05
хост существует в обоих доменах?xxx.auckland.ac.nz
я думаю, победит?