Vraag piping met behulp van ssh zonder te moeten herintroduceren voor elke pijp


Ik heb een ssh-verbinding en ik moet een aantal lokale bestanden verzenden en uitvoeren naar de ssh-server.

Ik weet dat ik dit kan doen met het volgende commando

tar zcf - stuff | ssh user@server 'tar zxf -'

Ik zou het achtereenvolgens willen instellen met behulp van de && operator. Ik heb al een verbinding en ik wil niet voor elke pijp opnieuw instuderen, omdat ik er maar één tegelijk zal gebruiken.

Gewoon om te verduidelijken dat ik niet alleen tarballs over het netwerk verplaats, maar ook invoer van apparaten die van tijd tot tijd worden verzameld terwijl de pijplijn opengaat. Gewoon om te voorkomen dat mensen zeggen: "waarom gebruik je dit programma niet om je bestand over het internet te verplaatsen" of "je zou ook een USB-drive kunnen gebruiken om die bestanden over te zetten"


1
2018-01-15 12:39


oorsprong




antwoorden:


U kunt aanhoudende verbindingen gebruiken. In uw ~/.ssh/config bestand, voeg regels zoals deze toe.

Host server.name.or.wildcard.goes.here
ControlPath /tmp/ssh.%r@%h:%p
ControlMaster auto
ControlPersist yes
ServerAliveInterval 300
ServerAliveCountMax 15

Dit zal SSH vertellen om de verbinding open te houden met een bestand in /tmp dat is gebaseerd op de combinatie gebruiker / host / poort. Nadat u eenmaal verbinding hebt gemaakt, zal ssh een bestaande verbinding opnieuw gebruiken. Het zal uiteindelijk time-out en automatisch verbreken. Op deze manier krijgt u slechts eenmaal uw wachtwoordprompt voor verschillende opdrachten die snel achter elkaar worden uitgevoerd, tot een bepaalde tijd. Als de verbinding te lang inactief is, wordt deze gesloten en moet u opnieuw een wachtwoord invoeren.

Als de verbinding open blijft, wordt ook de eerste vertraging van het maken van een beveiligde verbinding verwijderd. Dit is geweldig voor scripts waar je wat actie moet doen, zoals een bestand kopiëren, dan wachten, dan een ander bestand kopiëren, enz. cdist gebruikt deze techniek om de provisioning van machines te versnellen.

U kunt ook kijken naar het maken van ssh-sleutels om het wachtwoord volledig te vermijden.


3
2018-01-15 13:49