Como SSH diretamente para o destino via jumphost usando o SSH Config sem o comando ssh adicional

14

Se eu fizer:

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

Acabo imediatamente conectado ao 'target'.

Se eu usar esse arquivo de configuração ssh, usando a configuração de salto mais recente do 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

Acabo logado no 'jumphost' e não no 'target'

O material de chaveiro é para mac, eu testei sem ele e não faz diferença, mas pensei em deixá-lo por precaução.

AirCombat
fonte
1
-Jé ProxyJumpe não HostName.
Boris the Spider

Respostas:

21

Você acaba efetuando login no host de salto porque sua configuração diz explicitamente para ignorar o nome do host especificado e efetue login no host de salto.

  HostName jumphost.example.com

HostName substitui o nome do host especificado na linha de comandos.

Se você estiver tentando usar automaticamente um host de salto sem precisar especificá-lo na linha de comando ssh, a opção correta do arquivo de configuração é ProxyJump. Por exemplo:

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

Agora você pode simplesmente correr ssh target.example.come passará pelo jumphost.

Michael Hampton
fonte
2

O problema é que a definição de host captura jumphost.example.com AND target.example.com como aliases e, em seguida, define HostName como jumphost.example.com nos dois casos.

Eu sugeriria que os aliases seguissem o comando Host NÃO fossem nomes de domínio totalmente qualificados e, em seguida, criasse uma entrada Host para cada

Nanzikambe
fonte