ssh

Linux-opdrachten uitvoeren op een extern systeem via SSH?

Linux-opdrachten uitvoeren op een extern systeem via SSH?

Om op het externe systeem te werken, logt u eerst in op dat systeem, voert u opdrachten uit om verschillende taken uit te voeren en logt u vervolgens uit bij die sessie. Zelfs om een ​​enkele opdracht op een extern systeem uit te voeren, moet u alle stappen doorlopen. Terwijl u op de lokale en externe systemen naast elkaar werkt, moet u meerdere keren tussen beide schakelen. Meerdere keren in- en uitloggen op een systeem kan vervelend zijn. Er zou een manier moeten zijn waarmee je commando's op een extern systeem kunt uitvoeren zonder erop in te loggen.Gelukkig is er een manier waarop we je kunnen laten zien hoe je commando's op een extern systeem via SSH rechtstreeks vanaf je lokale machine kunt uitvoeren.

Vereisten

Als voorwaarde moet u beschikken over:

Opmerking: de opdrachten die in deze tutorial worden genoemd, zijn uitgevoerd op Ubuntu 20.04 LTS (Focal Fossa) Terminal, die kan worden geopend via de sneltoets Ctrl+Alt+T. Dezelfde commando's zijn ook van toepassing op Linux Mint en Debian.

Voer Linux-opdrachten uit op een extern systeem via SSH

Gebruik de volgende syntaxis om een ​​opdracht uit te voeren op een extern systeem vanaf uw lokale systeem:

$ ssh

Waar gebruikersnaam is de gebruiker op het externe systeem, hostnaam/IP_Adres is de hostnaam of het IP-adres van het externe systeem. De Commando/Script is de opdracht of het script dat u op het externe systeem wilt uitvoeren.

Als de SSH op een andere poort dan de standaardpoort draait, vermeld dit dan als volgt met de vlag -p:

$ ssh -p

Enkele opdracht uitvoeren op systeem op afstand

Stel dat u de hostnaam van het externe systeem moet vinden. In dit geval is de opdracht die u op het lokale systeem moet uitvoeren:

$ ssh [email protected] hostnaam

Nu wordt u gevraagd om het wachtwoord voor de externe gebruiker op te geven. Typ het wachtwoord en druk op Enter.

In de volgende uitvoer is "mypc" de hostnaam van het externe systeem.


U kunt de opdracht ook als volgt tussen een enkele ("") of dubbele aanhalingstekens ("") plaatsen:

$ ssh [email protected] "hostnaam"

Voer meerdere opdrachten uit op een extern systeem

Als u meerdere opdrachten op het externe systeem via SSH moet uitvoeren, scheid ze dan met (;) of (&&) en zet ze tussen aanhalingstekens (“”). Als u de meerdere opdrachten niet tussen aanhalingstekens plaatst, wordt alleen de eerste opdracht uitgevoerd op de externe computer en worden de andere opdrachten uitgevoerd op de lokale computer.

$ ssh   “opdracht1 && opdracht2”

of

$ ssh   “opdracht1; commando2”

Het && scheidingsteken gebruiken

Als u het scheidingsteken (&&) gebruikt, wordt de tweede opdracht alleen uitgevoerd als de eerste opdracht met succes is uitgevoerd. Als u bijvoorbeeld de opdrachten "mkdir" en "ls" op het externe systeem wilt uitvoeren, moet u de volgende opdracht op uw lokale systeem uitvoeren:

$ ssh -t [email protected] “mkdir mijnbestanden && ls”

Nu wordt u gevraagd om het wachtwoord voor de externe gebruiker op te geven. Typ het wachtwoord en druk op Enter.

Hieronder volgt de uitvoer van de opdrachten die op een extern systeem zijn uitgevoerd:. Het tweede commando "ls" wordt alleen uitgevoerd op het externe systeem als het eerste commando "mkdir" slaagt.


Deze opdracht is ook handig bij het upgraden van het systeem. Over het algemeen wordt een systeemupgrade uitgevoerd na een update. Daarom kunt u met behulp van de bovenstaande opdracht de systeemupgrade alleen uitvoeren als de updates slagen.

De ... gebruiken ; scheidingsteken

Als u het scheidingsteken (;) gebruikt, wordt de tweede opdracht uitgevoerd, ongeacht of de eerste opdracht succesvol was of niet. Als u bijvoorbeeld de opdrachten "hostnaam" en "ip r" op het externe systeem wilt uitvoeren, moet u de volgende opdracht op uw lokale systeem uitvoeren:

$ ssh [email protected] “hostnaam ; ip r”

Nu wordt u gevraagd om het wachtwoord voor de externe gebruiker op te geven. Typ het wachtwoord en druk op Enter.

Hieronder volgt de uitvoer van de opdrachten die op een extern systeem zijn uitgevoerd:. De tweede opdracht "ip r" wordt uitgevoerd, zelfs als de eerste opdracht niet succesvol is.

Opdracht uitvoeren op extern systeem met Sudo-rechten

Sommige commando's op Linux vereisen verhoogde privileges, zoals het installeren of verwijderen van software, het toevoegen of verwijderen van een gebruiker, het wijzigen van systeemconfiguraties, enz. Wanneer u een opdracht uitvoert op de externe systemen waarvoor sudo-rechten vereist zijn, wordt u eerst om het wachtwoord voor de externe gebruiker gevraagd en vervolgens wordt u om het sudo-wachtwoord gevraagd om de opdracht uit te voeren.

Om bijvoorbeeld systeemrepository's op het externe systeem bij te werken, moet u de volgende opdracht op uw lokale systeem uitvoeren:

$ ssh -t [email protected] "sudo apt-update"

Hieronder volgt de uitvoer van de opdracht die wordt uitgevoerd op een systeem op afstand met verhoogde bevoegdheden:.


Opmerking: dan wordt de optie -t hier gebruikt om tty . krachtig toe te wijzen.

Voer de opdracht uit op het externe systeem en sla de uitvoer op in het lokale systeem

De uitvoer van de opdrachten die op de externe systemen worden uitgevoerd, kan ook worden opgeslagen op het lokale systeem. De volgende opdracht voert bijvoorbeeld de opdracht ifconfig uit op het externe systeem en slaat de uitvoer op in een bestand met de naam ip.txt op het bureaublad van de lokale computer.

$ ssh -t [email protected] “ifconfig” > ~/Desktop/ip.tekst

Lokaal script uitvoeren op extern systeem

Het script dat op het lokale systeem is geplaatst, kan ook op het externe systeem worden uitgevoerd. Laten we dit uitleggen door een script met de naam sample te maken.sh in het lokale systeem.

$ sudo nano-voorbeeld.sh

Voeg onderstaande regels toe aan het scriptbestand:

#!/bin/bash
datum
hostnaam
ip-route
ping -c 3 google.com

Sla nu het script op en sluit het.


Om nu het scriptvoorbeeld uit te voeren.sh op het externe systeem, geef de onderstaande opdracht in Terminal:

$ ssh -t [email protected] 'bash -s; < sample.sh

Hier is de uitvoer nadat het script op een extern systeem is uitgevoerd:


Dat is alles wat er is! In deze zelfstudie hebben we u laten zien hoe u opdrachten uitvoert op een extern systeem via SSH execute. Het maakt het werken op het externe systeem heel eenvoudig en bespaart u ook het gedoe van meerdere keren in- en uitloggen op het externe systeem.

Doom installeren en spelen op Linux
Inleiding tot Doom De Doom-serie is ontstaan ​​in de jaren 90 na de release van de originele Doom. Het was meteen een hit en vanaf die tijd heeft de g...
Vulkan voor Linux-gebruikers
Met elke nieuwe generatie grafische kaarten zien we game-ontwikkelaars de grenzen van grafische betrouwbaarheid verleggen en een stap dichter bij foto...
OpenTTD versus Simutrans
Je eigen transportsimulatie maken kan leuk, ontspannend en buitengewoon aanlokkelijk zijn. Daarom moet je ervoor zorgen dat je zoveel mogelijk spellen...