Назад | Перейти на главную страницу

Использование псевдонима в / etc / hosts или ssh_config

Я настроил бастион или (прыжковый) ящик для доступа к виртуальной частной сети.

#ssh_config
Host bastion
HostName 14.90.140.120
User me
IdentityFile ~/.ssh/me
ForwardAgent yes

Host 10.1.*
User me
IdentityFile ~/.ssh/me
ProxyCommand ssh bastion -W %h:%p

Я могу без проблем подключиться к адресу бастиона и 10.1.1.6 по ssh.

Я бы хотел добавить такую ​​запись. Примечание. На данный момент у меня нет времени на DNS, но это был бы мой предпочтительный подход.

#/etc/hosts
10.1.1.6    my-host-inside-vpc.corp.internal

Однако когда я это делаю и пытаюсь получить доступ к машине, я получаю следующее

➜  ~ ssh -vvv my-host-inside-vpc.corp.internal
     debug1: Reading configuration data /home/me/.ssh/config
     debug1: /etc/ssh/ssh_config line 19: Applying options for *
     debug2: ssh_connect: needpriv 0
     debug1: Connecting to my-host-inside-vpc.corp.internal [10.1.1.6] port 22.

На этом этапе время операции истекает.

В Host совпадает с именем, которое вы используете при подключении, не ip после разрешения dns.

Попробуйте использовать Host *corp.internal вместо.

Согласно нашему обсуждению в комментариях, если вы хотите использовать символические имена, но вам необходимо преобразовать их в IP-адреса для хоста-бастиона, тогда вы можете использовать субэкспрессионист в ProxyCommand следующим образом.

ProxyCommand ssh bastion -W $(getent hosts $h | cut -d " " -f1):%p