Eu configurei ~/.ssh/config
o arquivo no localhost:
### First jump host. Directly reachable
Host ServerA
Hostname 10.0.5.101
User jenny
IdentityFile /home/admin/.ssh/serverA
### Second jumphost. Only reachable via 10.0.5.101
Host ServerB1
HostName ServerB1
User james
ProxyJump ServerA
IdentityFile /home/admin/.ssh/james
### Host only reachable via serverA and ServerB1
Host ServerC1
HostName ServerC1
User root
ProxyJump ServerB1
IdentityFile /home/admin/.ssh/ServerC1
Posso me conectar diretamente ServerC1
usando ssh ServerC1
o comando localhost
usando a configuração acima.
A questão é que são muitos ServerB's
e cada um ServerB
está conectado a vários ServerC's
. As chaves privadas são as mesmas para todos os servidores, então esse não é o problema.
Do localhost, quero me conectar via túnel SSH a qualquer um dos ServerC1,2,3..n
ServerA /etc/hosts
possui todos os nomes de host e IPs para ServerB e cada ServerB possui IPs de ServerC em seu /etc/hosts
arquivo.
Posso usar a correspondência de padrões em meu localhost's
~/.ssh/config
arquivo para fazer isso? Atualmente estou limitado a conectar ServerC1
apenas porque especifiquei ServerB1
eServerC1
Responder1
Após alguma ajuda do reddit, a melhor resposta para este problema é configurar o ~/.ssh/config
arquivo da seguinte forma: Supondo que todos os ServerB* tenham o mesmo IdentityFile.
Host ServerA
Hostname 10.0.5.101
User jenny
IdentityFile /home/admin/.ssh/serverA
Match originalhost ServerB*
User james
ProxyJump ServerA
IdentityFile /home/admin/.ssh/james
E então na linha de comando:
ssh -J serverB1 -i /home/admin/.ssh/ServerC1 root@ServerC1