É possível conectar-se a um servidor web e, em seguida, conectar-se a um servidor git usando o agente SSH se o segundo salto precisar de um usuário diferente?
Funciona se eu passar o nome do usuário explicitamente.
$ ssh web.example.com
# connects
> ssh -T [email protected]
> # connects
Não funciona se eu confiar na configuração do SSH para definir o usuário.
$ ssh web.example.com
# connects
> ssh -T git.example.com
> # permission denied
Aqui está a configuração SSH na minha máquina.
Host web.example.com
User blue
ForwardAgent yes
Host git.example.com
User yellow
Na saída de depuração, diz autenticando como blue
se a configuração configurasse o usuário yellow
para o host.
debug1: Authenticating to git.example.com:22 as 'blue'
Por que ele usa o usuário errado? Não quero codificar o usuário porque não funciona para toda a equipe usar o mesmo script de implantação.
Respostas:
Eu prefiro definir todas as configurações explicitamente no meu
~/.ssh/config
com um pequeno alias para cada host. Dessa forma, não precisarei usar nenhum sinalizador de linha de comando e posso simplesmente digitar menos e usarssh Destination
e terminar.ProxyJump
é uma configuração relativamente nova que considero um pouco mais intuitiva do que aProxyCommand
. Agorassh git
fará exatamente o que você precisa, primeiro crie uma sessão usando[email protected]
como primeiro salto a partir do qual você faz o tunel para o próximo salto[email protected]
.Você também pode usar o comando ProxyJump diretamente na linha de comando:
fonte