Это мой коммент, на как обычно пустой и бессмысленный первый комментарий, я бы даже сказала спамерско-бесполезный… Не заметили, что он подойдет примерно к 70% всех постов?
Не нужно. Если требуется настраеваемое автодополнение — привет, zsh. bash должен быть по возможности более ванильный, ибо работать с ним приходится практически везде, в том числе там, куда свои конфиги не утянешь.
Конкретно в моем случае, в known_hosts сохраняются айпишники, причем они из одной сети. Автодополнение до последнего октета адреса делает мало погоды. В конфиг же я кладу человеческие названия аля db, web1, web2 и т.д.
Кроме того в конфиг можно положить еще много чего вкусного, например юзернейм.
В моем случае количество серверов несколько больше, чем то, что можно запомнить по ip-адресам. При этом я вполне знаю на какой хост по имени надо попасть.
Конфиг, к тому-же надо поддерживать руками в актуальном состоянии, а машина в known_hosts попадает сама, после первой попытки логина на нее.
>В конфиг же я кладу человеческие названия аля db, web1, web2 и т.д.
А у вас не поднята даже локальная DNS зона для ваших машин?
Поэтому я и писал про фиксированный набор машин.
У нас далеко не локальная зона. Куча vpn-ов к заказчикам, на всех не наподымаешься :)
Кроме того, у нас часто используются виртуальные адреса балансера, за которым живет несколько реальных машин, в этом случае ssh сильно огорчается, когда видит в known_hosts другой хэш машины. Я не проверял еще решает ли ваше предложение эту проблему.
>в этом случае ssh сильно огорчается, когда видит в known_hosts другой хэш машины
Он огорчится в любом случае :-)
>часто используются виртуальные адреса балансера, за которым живет несколько реальных машин
вы балансируете все соединения на балансер, а не только на некоторый выбранный(80, к примеру) порт?
Да. Виртуальный адрес висит на полноценном интерфейсе.
В общем, мы не можем предугадать какая физическая машина обслужит нас по этому виртуальному адресу в конкретный момент.
known_hosts при коллизии приходится чистить
Забавно.
Я сталкивался с системами, когда баласер балансирует (oops) соединения на выбранном порту к определенным машинам. При этом доступ к машинам сохраняется по их «исходным» адресам.
Это не только и не столько балансер, сколько обеспечение реданденси, защита от физического выгорания одного из спаренных узлов. Тогда адрес переключится на запасной.
Доступ к машинам по исходным адресам тоже есть. Но обычно надо попасть на «активную»
Использование bash completion в командной строке, собственных скриптах и приложениях. Часть 1