Het Secure Shell-protocol is een gebruikelijke manier om verbinding te maken met een externe machine via client-/servertoepassingen. Het maakt gebruik van een toolset zoals ssh, scp en sftp, naast vele andere, om een veilig authenticatieproces en gecodeerde communicatie die volgt te garanderen. Hierdoor vervangen deze tools andere oudere toolsets voor het uitvoeren van opdrachten op afstand, zoals telnet, rcp en rlogin.
In deze handleiding leert u hoe u OpenSSH-server/clientservices op uw computer installeert en inschakelt. Het omvat ook alle noodzakelijke commando's (SSH-tools) om toegang te krijgen tot systemen en ze op afstand te beheren en om daartussen bestanden over te dragen.
Aan de slag met SSH
Standaard bevatten de meeste Linux-systemen de ssh-client- en serverapplicaties. De pakketten die ssh-tools bevatten in RHEL- en Fedora-distributies zijn openssh, openssh-server en openssh-client. Gebruik de grep commando om ssh-tools uit de geïnstalleerde lijst op te halen:
yum lijst geïnstalleerd | grep openssh
Terwijl Ubuntu alleen een openssh-clientpakket bevat dat ook een openssh-pakket bevat. Gebruik de opdracht grep om als volgt openssh-pakketten in Ubuntu weer te geven:
sudo dpkg --list | grep openssh
sudo apt-get install openssh-server
SSH-service starten/inschakelen
Het beheer van de openssh-service kan variëren van distributie tot distributie, en ongeacht de standaardconfiguraties start het niet automatisch. Gebruik de volgende reeks opdrachten om ervoor te zorgen dat de service actief is op uw Linux-machine:
systemctl status sshd.service #for Fedora en RHEL
systemctl status ssh #voor Ubuntu
Als het niet actief is, controleert u de servicestatus als volgt:
systemctl start sshd.service #for Fedora en RHEL
systemctl ssh start #voor Ubuntu
Om de openssh-server te starten zodra het systeem opstart:
systemctl sshd.service inschakelen
systemctl ssh inschakelen
Naast vele andere tools om te gebruiken: SSH-protocol voor externe toegang tot het Linux-systeem zijn de meest gebruikte de ssh-opdracht voor externe code uitvoering en log in, waarbij scp en rsync handig zijn bij het kopiëren van een of meer bestanden tussen de client en server.
De sectie behandelt diepgaande details van de hierboven besproken commando's voor efficiënt beheer op afstand.
Inloggen op afstand
SSH is het commando dat je het vaakst zult gebruiken voor de configuratie op afstand van je Linux-server waarop de sshd-service draait. Gebruik het ssh-commando om te controleren of je kunt inloggen op je Linux-server voor het uitvoeren van commando's.
Je kunt een andere Linux-machine gebruiken om in te loggen op je server, of je kunt er een idee van krijgen door het te simuleren over je localhost als volgt:
Voor inloggen op afstand op een Ubuntu-account op X.X.X.X (waarbij X.X.X.X het IP-adres van het externe apparaat is):
ssh [email protected]
Voor inloggen op afstand als lokale gebruiker:
ssh localhost
Als u voor de eerste keer inlogt op de externe server, wordt u om bevestiging gevraagd om verbinding te maken met het systeem, voer Ja en typ het wachtwoord van de gebruikersaccount.
Na het inloggen kunt u doorgaan met de uitvoering van de opdracht op afstand, aangezien deze vergelijkbaar is met de normale aanmelding, met als enige verschil dat de communicatie op afstand versleuteld is.
Als u klaar bent, typt u de Uitgang commando om de sessie te beëindigen en terug te keren naar uw lokale systeem. Als het de externe shell niet kan sluiten, ~. toetsen doen ook een vergelijkbare taak en geven 'Verbinding met X.X.X.X gesloten' weer.
Uitvoering op afstand
Met de opdracht ssh kunnen opdrachten op het externe systeem worden uitgevoerd en wordt de uitvoer op de lokale computer geretourneerd. Bijvoorbeeld,
De volgende opdracht wordt uitgevoerd als de gebruiker: ubuntu op de externe server en retourneert de hostnaam:
ssh [email protected] hostnaam
Om een opdracht uit te voeren die opties of vlaggen bevat, plaatst u deze als volgt tussen dubbele aanhalingstekens:
ssh [email protected] "cat /tmp/new_file"
De bovenstaande opdracht retourneert de inhoud van het bovenstaande bestand op uw lokale scherm.
U kunt ook meerdere opdrachten uitvoeren zonder telkens opnieuw verbinding te maken door X11-forwarding op uw server in te schakelen. Open de sshd_config bestand binnen /etc/ssh directory en set X11 Doorsturen naar Ja als volgt:
Voer nu de opdrachten als volgt uit:
ssh -X [email protected] hostnaam & cat /tmp/new_file/ & afsluiten
Bestand kopiëren via scp en rsync
De scp opdracht stelt u in staat om bestanden van op afstand naar het lokale systeem over te brengen/kopiëren en vice versa. De functionaliteit is vergelijkbaar met het rcp-commando, maar met RSA-gecodeerde communicatie. Enkele voorbeelden volgen.
Kopieer de het dossier van de /etc/demo map van de externe machine naar zijn /tmp map als volgt:
scp [email protected]:/home/ubuntu/demo/file /tmp
Dit maakt ook recursief kopiëren mogelijk, wat betekent dat u het commando een directory kunt geven, en het kopieert alle bestanden/mappen in de hiërarchie naar een andere lokale directory.
scp -r localhost:/home/ubuntu/ /tmp
U kunt ook de opdracht scp gebruiken voor back-up van bestanden en mappen, maar rsync is om verschillende redenen een beter back-uphulpprogramma:
- scp kan de bestands-/directory-machtigingen en tijd/datum niet behouden.
- Het is ook niet in staat om reeds gekopieerde bestanden en mappen te identificeren.
Maak nu een lijst van de inhoud van de bovenstaande mappen om de bestandsrechten en het tijdstip van aanmaak te bekijken, als volgt:
ls -l /etc/demo /tmp/demo
Herhaal de bovenstaande scp-opdracht en geef de mappen opnieuw op om te controleren of het het reeds gekopieerde bestand/de mappen van de tijdstempel vervangt:
Verwant:Kopieer veilig bestanden in Linux met het Scp-commando
De -p vlag want het scp-commando kan helpen om de tijdstempel of schrijfrechten te behouden, maar het vervangt nog steeds de reeds gekopieerde bestanden. Om deze tekortkomingen te verhelpen, gebruikt u rsync als back-uptool. Verwijder eerst de bestanden in de /tmp directory om verder te gaan met het onderstaande voorbeeld. Gebruik de opdracht rsync met de -een vlag voor recursieve archivering en de -v optie voor uitgebreid om de. te kopiëren /home/ubuntu/demo bestanden naar de /tmp directory, als volgt:
rsync -av [email protected]:/home/ubuntu/demo /tmp
Maak een lijst van de /tmp directory om op te merken hoe het de tijd van het maken van bestanden of mappen behoudt.
Voer tot slot de. opnieuw uit rsync commando om te controleren of het geen enkel bestand kopieert.
Kennismaken met SSH
Het artikel is een gids voor het meest gebruikte protocol voor beheer op afstand van Linux-servers. We laten zien hoe u de belangrijkste SSH-commando's kunt gebruiken met enkele tips en trucs om het kopiëren en beheren van bestanden te vergemakkelijken.
Beginnen met het begrijpen van SSH-commando's/tools en hun functionaliteit kan uw kijk op systeem-/serverbeheer veranderen, omdat het de mogelijkheden van niet alleen SSH maar ook de Linux-terminal ontgrendelt. Het is een krachtig hulpmiddel dat aanzienlijke beveiliging biedt, samen met verdere functionaliteit die te geavanceerd is om in één enkele handleiding te behandelen.
Leer hoe u tijd kunt besparen bij het beheren van externe servers met deze SSH- en Linux-opdrachten.
Lees volgende
- Linux
- SSH
- Toegang op afstand
Rumaisa is freelance schrijver bij MUO. Ze heeft een lange weg afgelegd van een wiskundige tot een enthousiaste informatiebeveiliging en werkt als SOC-analist. Haar interesses omvatten lezen en schrijven over nieuwe technologieën, Linux-distributies en alles wat met informatiebeveiliging te maken heeft.
Abonneer op onze nieuwsbrief
Word lid van onze nieuwsbrief voor technische tips, recensies, gratis e-boeken en exclusieve deals!
Klik hier om je te abonneren