Eu uso ssh -t ⟨AD user⟩@⟨gateway IP⟩ ssh ⟨destination hostname⟩
para conectar-me a ⟨destination hostname⟩
. O gateway pede credenciais do Active Directory e então me conecta em ⟨destination⟩
.
Estou tentando salvar esta configuração em ~/.ssh/config
. Minha última tentativa é
Host ⟨gateway⟩
HostName ⟨gateway IP⟩
RequestTTY force
User ⟨AD user⟩
Host ⟨destination⟩
HostName ⟨destination hostname⟩
ProxyJump ⟨gateway⟩
User ⟨AD user⟩
Não é ⟨destination hostname⟩
um IP, mas um nome que o gateway procura. Essa coisa parece funcionar bem. Um ponto de falha parece ser o fato de que meu nome de usuário da máquina local ⟨local user⟩
é diferente de ⟨AD user⟩
mas o SSH procura por arquivos de ID e known_hosts
nas máquinas remotas em /home/⟨local user⟩/
em vez de /home/⟨AD user⟩/
. Eu tentei definir explicitamente IdentityFile
na configuração do SSH, mas não funcionou.
Então, dada essa configuração de gateway LDAP, você sabe se posso fazer ajustes ~/.ssh/config
para poder efetuar login na máquina remota usando ssh ⟨destination⟩
?
Se você realmente precisa executar
ssh
um comando na máquina do gateway remoto (em vez de criar um túnel de conexão através da máquina do gateway), então useRemoteCommand
a diretiva:Veja https://man.openbsd.org/ssh_config#RemoteCommand
Isso é algo que está pendurado no meu .ssh/config há algum tempo. Ele permite que você faça coisas como
ssh gateway1+gateway2+gateway3+target
, e ele encadeará as conexões. Cada um dos itens é (como você esperaria) do formato[user@]hostname[:port]
.Você pode adicionar
-t
ao comando para que ele aloque TTYs ao longo do caminho.Admito que não o usei tanto quanto pensei que usaria.