se connecter à une machine à travers un autre, avec (dé) compression aux extrémités seulement

J'ai regardé tout autour, mais n'a pas pu find la réponse à une question très simple:

Je voudrais me connecter à la machine C depuis la machine A, en passant par la machine B. Cependant, B est lent, donc je voudrais aussi que ma connection à C soit compressée / décompressée en C, tunnelée par B et décompressée / compressée en A .

Quelle command ssh dois-je exécuter (dans la machine A) pour get une invite à la machine C quand:

  1. Je suis physiquement à la machine A.
  2. Je peux utiliser ssh pour se connecter directement …

    2.1. … dans la machine B de A

    2.2. … dans la machine C de B

  3. Je ne peux pas me connecter à la machine C de A directement


[MODIFIER]

Ce n'est pas un doublon car:

  1. Je ne request pas comment transmettre le trafic en général, seulement une connection ssh, donc il pourrait y avoir une réponse différente pour le cas particulier de la transmission ssh via ssh
  2. Je request une compression aux extrémités (comme le mentionne même le titre)

En supposant que vous avez:

  • A avec l'adresse IP ip_A
  • B avec l'adresse IP ip_B
  • C avec l'adresse IP ip_C

A partir d'un premier terminal, connectez-vous au B et configurez un tunnel sur C sur ssh (le port 10022 est utilisé pour le tunnel mais il peut s'agir d' autre chose):

ssh ip_B -L10022:ip_C:22 

Ensuite, à partir d'un autre terminal, vous pourrez vous connecter "directement" à C depuis A en utilisant le tunnel que vous venez de définir et vous appendez une option de compression à la command ssh si nécessaire:

 ssh localhost -p 10022 -o "Compression=yes" -o "CompressionLevel=9" 

Dans la dernière command, je règle la compression au maximum, mais elle peut être réglée de 1 à 9, 9 étant la plus élevée, mais aussi la plus lente.