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

ssh-туннелирование с именем хоста в файле / etc / hosts

Я пытаюсь установить ssh на целевой хост через окно перехода. Ниже моя запись файла конфигурации

Host 172.* 
   User surendra
   IdentityFile ~/.ssh/id_rsa
   ProxyCommand ssh -q -A surendra@jump nc -q0 %h %p

Это отлично работает, когда я использую SSH в поле назначения с IP-адресом. Но когда я пытаюсь использовать SSH с именем хоста, это не сработает.

Примечание: я также сделал запись в моем файле / etc / hosts.

Может ли кто-нибудь помочь, как настроить файл .ssh / config, чтобы я мог использовать ssh в поле назначения, используя имя хоста, просмотрев запись имени хоста в моем файле / etc / hosts.

Другой способ обойти это - создать записи сопоставления имени хоста / ip как на вашем локальном компьютере, так и в файле jumpbox / etc / hosts.

Ex. Предположим, что машина, на которую вы пытаетесь установить прокси, - 10.xx.yy.zz, и вы хотите указать удобное для пользователя имя appserver.mycompany.com, а ваш Jumpbox - jumpbox.mycompany.com.

1) На вашем локальном хосте / etc / hosts сделайте следующую запись

10.xx.yy.zz appserver.mycompany.com

2) В папке / etc / hosts вашего jumpbox сделайте следующую запись

10.xx.yy.zz appserver.mycompany.com

Теперь, когда и ваш локальный компьютер, и ваш jumpbox смогут преобразовывать удобное для пользователя имя в фактический IP-адрес, и ваш прокси-сервер ssh должен работать со следующей конфигурацией

Host appserver.mycompany.com
   User surendra
   IdentityFile ~/.ssh/id_rsa
   ProxyCommand ssh -A surendra@jumpbox.mycompany.com -W %h:%p

Использовать -W:

Match exec grep %h /etc/hosts
    [...]
    ProxyCommand ssh -W  %h:%p -q -A surendra@jump

Он разрешит имена хостов с вашего локального компьютера, а не из jumpbox.

Он также проверит, упоминается ли ваш хост в /etc/hosts.