SSH através de host intermediário usando soquete de controle

SSH através de host intermediário usando soquete de controle

Quero fazer SSH para uma máquina C da máquina A a B. Normalmente eu faria:

A$ ssh user@B
B$ ssh user@C

Tenho que digitar senhas nas duas vezes (nenhuma chave pública é permitida). Gostaria de configurar um soquete de controle para que depois de digitar as duas senhas eu possa fazer ssh para C usando o soquete, talvez digitando algo como:

A$ ssh -S socket C

Isso é possível?

Responder1

Você pode usar B como host de salto:

ssh -J user@B user@C

Se seus nomes de usuário ou nomes de host forem longos, você poderá adicioná-los a ~/.ssh/config:

Host hostB
    HostName some-long-hostname-of-B-or-its-ip
    User username-on-B

Host hostC
    HostName same-here-for-C
    User username-on-C

Então você pode ssh assim:

ssh -J hostB hostC

O salto também pode ser configurado para ssh hostC:

Host hostC
    HostName same-here-for-C
    User username-on-C
    ProxyJump hostB

Responder2

Para complementar a resposta do gronostaj, veja como você cria um soquete com -J:

$ ssh -M -S socket -J user@B user@C -fN

Então, para usar o soquete para fazer login em C:

$ ssh -S socket C

Dessa forma, você não é obrigado a digitar nenhuma senha.

informação relacionada