3

Этот поток: В вашей конфигурации ssh возможно, чтобы одна запись хоста для нескольких машин в одном домене объясняла часть «псевдонимов» моего вопроса, мне было интересно, возможно ли установить имя пользователя по умолчанию AS, а также использовать псевдонимы домена, поэтому Я могу просто написать что-то вроде:

ssh subdomain

В моем файле /etc/resolv.conf есть следующее:

search my_cool_domain.com

и следующее в моем файле ssh_config:

Host *.my_cool_domain.com
    User deploy

Поэтому я подумал, что будет работать следующее:

ssh subdomain

попытается подключиться к subdomain.my_cool_domain.com с помощью пользовательского deploy но по какой-то причине это не работает.

Хотя следующее:

ssh deploy@subdomain работает, а также: ssh subdomain.my_cool_domain.com

Любая идея, как я могу исправить это (если это возможно) элегантным способом?

2 ответа2

5

Шаблоны после ключевого слова "Host" в любом случае не преобразуются в реальные имена хостов, поэтому вы не можете обнаружить, что поддомен, для которого настроен ваш поиск DNS, фактически является поддоменом вашего основного домена.

Из справочной страницы ssh_config -

         ... The host is the hostname argument given on the command line (i.e. the
         name is not converted to a canonicalized host name before match-
         ing).

Ваша альтернатива - либо

  1. Используйте «Host *» и установите имя пользователя по умолчанию для всех хостов.
  2. Если / если у вас есть какие-то префиксы к вашим поддоменам, используйте «Host pfx1 * pfx2 *».
  3. Сконфигурируйте завершение своей оболочки и всегда используйте полные имена хостов, "Host * .mydomain" и "ssh subdomain", которые завершают его до "ssh subdomain.mydomain".
  4. Псевдонимы и функции оболочки также можно использовать для автоматического добавления части «.mydomain». Например, «ssh-alias subdomain», который является псевдонимом для «ssh subdomain.mydomain».
2

просто используйте комбинированное решение с правильной настройкой ssh_config + resolv.conf:

1 setup /etc/resolv.conf

search my_cool_domain.com

2 настроить ваш ssh_config для отображения между хостами и пользователями

Host subdomain1
    User deploy1

Host subdomain2
    User deploy2

таким образом ssh subdomain1 будет использовать требуемого пользователя deploy1 и хост будет квалифицирован к его полному имени от resolv.conf

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .