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

Как подключиться по SSH напрямую к цели через jumphost с помощью SSH Config без дополнительной команды ssh

Если я сделаю:

ssh -J jumphost.example.com target.example.com

Я сразу же вошел в «цель».

Если я использую этот файл конфигурации ssh, используя более новую конфигурацию перехода ssh-7.3:

Host jump 10.1.*, targets*, *.example.com
  HostName jumphost.example.com
  IdentitiesOnly yes
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile ~/.ssh/id_rsa

Host *
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile ~/.ssh/id_rsa

Я в конечном итоге вошел в 'jumphost', а не 'target'

Эти брелки предназначены для Mac, я тестировал без них, и это не имеет значения, но я подумал, что оставлю его на всякий случай.

В конечном итоге вы вошли в систему на хосте перехода, потому что ваша конфигурация явно требует игнорировать указанное вами имя хоста и войти на хост перехода.

  HostName jumphost.example.com

HostName переопределяет имя хоста, указанное в командной строке.

Если вы пытаетесь автоматически использовать узел перехода без необходимости указывать его в командной строке ssh, правильным параметром файла конфигурации является ProxyJump. Например:

Host everything, behind, jumphost, *.example.com
  ProxyJump jumphost.example.com

Теперь ты можешь просто бежать ssh target.example.com и вы пройдете через jumphost.

Проблема в том, что определение хоста улавливает как jumphost.example.com, так и target.example.com как псевдонимы, а затем устанавливает HostName равным jumphost.example.com в обоих случаях.

Я бы посоветовал сделать псевдонимы после команды Host НЕ полными доменными именами, а затем создать запись Host для каждого