Мне нужно войти на несколько серверов на работе, чтобы выполнить свою работу. Я устал от ввода полного доменного имени сервера для доступа. Я вхожу / выходить через SSH в нашей собственной частной сети. Я на 99% уверен, что это в нашей собственной частной сети, потому что все серверы имеют ip addr 10.xyz. Есть ли способ использовать ssh на серверах, используя только имя хоста, а не имя домена?
У нас есть серверы в разных странах. Способ именования наших серверов очень длинный. Он называется следующим образом:
hostname.country.domainname.com
Я получаю кистевой туннель, набираю
ssh me@hostname1.country.domainname.com
... каждый раз, когда я получаю доступ к одному из наших серверов. Если я нахожусь в США, и я пытаюсь получить доступ к другому хосту, который находится в США, я могу просто напечатать ssh me@hostname2
и я подключаюсь нормально. Однако, если я нахожусь в США и пытаюсь подключиться к серверу в Англии, я не могу набрать ssh me@hostname3.eng
и подключиться к hostname3
.
Обходной путь, который я сделал, установил псевдоним в моем файле ~ / .ssh / config для некоторых серверов. Однако я не думаю, что возможно добавить более 1000 серверов в этот файл. Я уже добавил более 20 серверов, и мои коллеги думают, что я сумасшедший, хотя я думаю, что они сумасшедшие из-за ввода полного доменного имени при поиске.
Есть ли простой способ для нас настроить что-то, чтобы нам не приходилось каждый раз вводить наш domainname.com?
источник
$HOME/.ssh/config
или вы можете сделать это в масштабе всей системы/etc/ssh/ssh_config
user@*.eng
?ssh foobar@somewhere.eng
и оно будет работать, как ожидалось. Все, что это делает, это переписать компонент имени хоста. Он будет работать даже сscp
иsftp
и так далее.Если вы добавите
к
/etc/resolv.conf
, и использованиеhostname.country
,ssh
(и другие сетевые программы, в этом отношении) автоматически добавитdomainname.com
для Вас 1 .Я не думаю, что добавление доменов разных стран к вашему
search
пути является хорошей идеей, потому что вы можете получить неожиданное поведение, если два сервера в двух разных странах используют одно и то же имя хоста. 2Я считаю, что этот метод лучше, чем изменение
ssh
конфигурации, потому что он позволяетhostname.country
решать независимо от программы, которую вы используете (telnet
, VNC, ...).Увидеть
resolv.conf(5)
1 Точнее, он добавится,
domainname.com
если не сможет решитьhostname.country
сам.2 В таком сценарии
hostname
будет разрешен сервер в стране, домен которой указан первым вsearch
пути.источник
man resolv.conf
Вы могли бы использовать
CanonicalDomains
опцию в вашей конфигурации SSH.Добавление следующего в ваш конфигурационный файл ssh заставит ssh попытаться добавить
domainname.com
к любому хосту, который имеет не более 1 точки в своем имени:С этим конфигом
ssh foo.eng
сначала попробуемfoo.eng.domainname.com
, и отступим,foo.eng
если хост не найден. Аналогично,ssh github.com
сначала попробуюgithub.com.domainname.com
, поэтому, если вы хотите подключиться к GitHub, ваш DNS-сервер не должен возвращать записи для несуществующих хостов.CanonicalizeMaxDots
Может быть использовано для управления , сколько точек могут появиться в имени хоста , прежде чем SSH считает полным и не добавляетdomainname.com
. по умолчанию он равен 1, что должно быть достаточно для вас, учитывая схему, которая у вас есть на данный момент, но если вы когда-нибудь доберетесь до чего-то подобного,hostname.city.country
вам придется увеличить его.источник