У меня есть много серверов, и они все заканчивают тем же servers.company.net, так например, vded-xx-001.servers.company.net, и задавался вопросом, возможно ли сделать его так, я могу просто ввести vded-xx-001 и иметь его, добавляют servers.company.net автоматически?
Таким образом, я хотел бы ввести
ssh user@vded-xx-001
и имейте его, на самом деле соединяются с
ssh user@vded-xx-001.servers.company.net
Я попытался установить свою область поиска DNS на servers.company.net в/etc/network/interfaces, но это не достигло желаемого результата.
Кто-либо, который в состоянии указать на меня в правильном направлении?
Заранее спасибо
Вероятно, Вы уже решили это, но возможно позже это могло помочь кому-то: Вам не нужно к mees с Вашим resolv.conf, просто может использовать что-то вроде этого в Вашем ~/.ssh/config:
Host vded-*-001 test-*-something-fixed-*
HostName %h.servers.company.net
User someusername
Таким образом, позже можно просто использовать:
ssh vdev-alotofstuff-001
ssh vdev-somethingels-001
ssh test-02-something-fixed-somethingelse
С уважением,
Решением моей проблемы было добавление поискового домена в resolv.conf
:
search servers.company.net
Это позволило мне ввести
ssh user@vded-xx-001
для любого из моих серверов, и это подключиться к правильному адресу.
Спасибо @Hennes за ответ.
Да, вы можете сделать это, создав файл конфигурации с именем ~/.ssh/config
и введя следующее содержимое:
Host vded-xx-001
User user
Port 22
HostName vded-xx-001.servers.company.net
Теперь вам просто нужно набрать это (вам даже не нужно вводить имя пользователя) подробнее):
$ ssh vded-xx-001
Это также работает с утилитой командной строки scp
:
$ scp filename vded-xx-001:/path/
При использовании идентификационных данных SSH - и с этим много серверов, это стоит посмотреть на - затем, поскольку OrangeDog заявил, что установка CanonicaliseHostname и CanonicaliseDomains также включит соответствие к @cert-authority запись в известных хостах
known_hosts запись @cert-authority *.example.com ssh-rsa AAAddadfkjaeio...
без опций Canonicalise необходимо было бы использовать "ssh host.example.com"
, опции With Canonicalise "ssh myhost" будут соответствовать.
я добавил бы это как комментарий к ответу OrangeDogs, если представитель разрешил...
Это самое простое решение. Он работает для всех хостов, не требует root или доступа к каким-либо системам DNS / resolver.
Добавьте в начало вашего файла ~/.ssh/config
(или создайте, если он еще не существует):
CanonicalizeHostname yes
CanonicalDomains servers.company.net
Документация ( man 5 ssh_config
):
CanonicalizeHostname
Управляет выполнением явной канонизации имени хоста. По умолчанию no не выполняется перезапись имен и позволяет системному распознавателю обрабатывать все запросы на поиск имени хоста. Если установлено значение yes , то для соединений, которые не используют ProxyCommand , ssh попытается канонизировать имя хоста, указанное в командной строке, используя суффиксы CanonicalDomains и CanonicalizePermittedCNAMEs правила. Если CanonicalizeHostname всегда установлено на , то всегда , тогда канонизация применяется и к прокси-соединениям.
Если эта опция включена, то файлы конфигурации снова обрабатываются с использованием нового целевого имени, чтобы подобрать любую новую конфигурацию в соответствующих станциях Host и Match .
BLOCKQUOTE>
Для общесистемного разрешения доменных имен мне нравится настраивать один раз в моей сети. Поэтому я установил в DHCP-сервере имя домена и DNS-сервер, чтобы он давал всем машинам право resolv.conf
, включая
Это зависит от DHCP-сервера и конфигурации сети, которую вы хотите ... Лично мне не нравится пользовательская конфигурация машины, когда она является чем-то общим для сети
Для быстрого решения, которое работает в разных программах, вы также можете настроить домен vded-xx-001
на перенаправление на определенный IP-адрес, отредактировав /etc/hosts
, добавив в него такую строку:
173.194.41.90 vded-xx-001
Это работает в вашем браузере: http://vded-xx-001/
А также с утилитами командной строки, такими как SSH:
$ ssh user@vded-xx-001
(лично я предпочитаю SSH config config) хотя.)