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.
-J
éProxyJump
e nãoHostName
.Respostas:
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
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:Agora você pode simplesmente correr
ssh target.example.com
e passará pelo jumphost.fonte
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
fonte