Hoe gebruik je SSH? Evenals installatie en configuratie (Linux, Windows, macOS, Android, iOS). Externe verbinding via console met Ubuntu-server. Het opzetten van de terminal. SSH-server

SSH-sleutels worden gebruikt om de client te identificeren wanneer u verbinding maakt met de server via het SSH-protocol. Gebruik deze methode in plaats van wachtwoordverificatie.

SSH-sleutels vormen een paar: een privé- en een openbare sleutel. De privé moet door de client privé worden gehouden, de open versie wordt naar de server verzonden en in het bestand geautoriseerde_sleutels geplaatst.

SSH-sleutels maken in Linux met CentOS als voorbeeld

Het ssh-pakket (openssh) moet aan de clientzijde worden geïnstalleerd. Op FirstVDS-servers met standaardsjablonen is de benodigde software al geïnstalleerd.

Yum -y installeer openssh-server openssh-clients

Voer op de clientcomputer op de opdrachtregel de opdracht voor het genereren van sleutels uit:

Ssh-keygen

Voer het pad in van het bestand waar de sleutels worden geplaatst. De standaardmap staat tussen haakjes, in het voorbeeld /home_dir/.ssh/id_rsa . Als u de standaardlocatie wilt verlaten, drukt u op Enter.

Een wachtwoordzin wordt gebruikt om de toegang tot de privésleutel te beperken. Het wachtwoord maakt het moeilijk voor derden om de sleutel te gebruiken als deze verloren gaat. Als u geen geheime zin wilt gebruiken, drukt u op Enter zonder de regel in te vullen.

Zodra u succesvol een sleutelpaar heeft gegenereerd, ziet u een melding:


De publieke sleutel wordt opgeslagen in het bestand /home_directory/.ssh/id_rsa.pub , de private sleutel wordt opgeslagen in /home_directory/.ssh/id_rsa .


Kopieer de openbare sleutel naar de server in het bestand /home_directory/.ssh/authorized_key . Op één regel:

Kat ~/.ssh/id_rsa.pub | ssh root@server-ip-adres %22cat >> ~/.ssh/authorized_keys%22

Of open dit bestand op de server met de vi-editor en voeg de openbare sleutelregel in na ssh-rsa .

Een andere manier om een ​​sleutel naar geautoriseerde_sleutels te kopiëren is met het echo-commando, dat de regel aan het einde van het bestand plaatst.

Echo ssh-rsa openbare-sleutelreeks >>/root/.ssh/authorized_keys

SSH-sleutels genereren op Windows met PuTTYgen

Als u gebruik maakt van Windows OS, kunt u via SSH verbinding maken met uw (Linux) server via PuTTY of OpenSSH. In dit geval wordt de sleutelgeneratie ook uitgevoerd met behulp van deze programma's. In het voorbeeld gebruiken we de PuTTY-client.

Start de PuTTYgen-applicatie, die samen met PuTTY is geïnstalleerd.

Selecteer het SSH2-RSA-sleuteltype en klik op Genereren.


Tijdens het genereren van de sleutel sleept u uw muis meerdere keren willekeurig over het applicatiescherm om willekeurige waarden te genereren die voor de sleutels worden gebruikt.


Nadat het maken van de sleutel is voltooid, wordt de openbare sleutel op het scherm weergegeven en wordt de privésleutel opgeslagen in het applicatiegeheugen. Om deze sleutels op te slaan, klikt u op Openbare sleutel opslaan en Privésleutel opslaan. Geef de locatie van de sleutelbestanden op.


Wanneer u een privésleutel opslaat en het veld Sleutelwachtwoord niet is ingevuld, wordt u gevraagd: "Wilt u de sleutel opslaan zonder de wachtwoordzin?"

Nu moet de openbare sleutel naar de server worden gekopieerd in het bestand geautoriseerde_sleutels. Gebruik WinSCP of een andere client om met bestanden op een externe Linux-server te werken. Je kunt het gehele bestand met de publieke sleutel naar de server kopiëren, zodat een kopie ervan in de map .ssh wordt opgeslagen


Open het bestand geautoriseerde_sleutels via WinSCP en het bestand waarin u de openbare sleutel hebt opgeslagen op uw lokale computer met een teksteditor. Kopieer de sleutelwaarde, sla het bestand op en sluit het in WinSCP.


Wanneer u PuTTY uitvoert, geeft u het pad naar de privésleutel op uw lokale computer op. Om dit te doen, selecteert u op het tabblad Verbindingen → Verificatie het gewenste pad.


Nu kunt u wachtwoordverificatie op de server uitschakelen en alleen SSH-sleutels gebruiken.

Schakel wachtwoordverificatie uit

Maak via SSH verbinding met de server met uw wachtwoord en open het bestand sshd_config om te bewerken.

Vi /etc/ssh/sshd_config

Zorg ervoor dat het juiste pad naar de openbare SSH-sleutels is opgegeven en stel de parameter PasswordAuthentication in op no .


Start de sshd-service opnieuw.

Service sshd opnieuw opstarten

Maak via SSH verbinding met de server zonder een wachtwoord te gebruiken. Voer bijvoorbeeld PuTTY uit, controleer of het tabblad Verbindingen -> Auth het pad naar de privésleutel bevat en open de verbinding.


Als de authenticatie met behulp van de SSH-sleutel succesvol is, ontvangt u toegang tot de opdrachtregel van de server en een bericht als Authenticeren met openbare sleutel "rsa-key-20170510", waarbij rsa-key-20170510 de naam is van de toegepaste privésleutel, gespecificeerd door u in het bestand geautoriseerde_sleutels.

Hallo! Ik ben geïnteresseerd in de vraag: hoe maak je via SSH verbinding met je thuiscomputer via internet. Ik heb thuis een FreeSSHd-server geïnstalleerd. Zoals ik het begrijp, moet ik op de een of andere manier poort 22 op het externe IP-adres openen, Alex

Ja, de behoefte komt vaak voor. Ik heb in dat artikel over veel dingen gesproken, maar hier zullen we het uitsluitend over SSH hebben, aangezien Alex ons zo vriendelijk was deze mogelijkheid te bieden. Bovendien ben ik zelf ontzettend geïnteresseerd in SSH, en hier is het ook op Windows... mmm.

Wat is SSH en waarom is het nodig?

Het punt is dat SSH dat is S zeker SCH el. Protocol voor veilige toegang tot de besturingshell. Daarom biedt het specifiek toegang tot de opdrachtregel, omdat Shell wordt vertaald als schelp en hier in de betekenis tekstbesturingsshell. Maar over het algemeen valt dit protocol op vanwege het feit dat het al het andere verkeer erin toestaat, en wel in gecodeerde vorm. Het beveiligde verbindingsprotocol voor het bestandssysteem wordt dus SFTP genoemd en draait bovenop SSH. Maar het kan absoluut alle andere verbindingen tunnelen, of het nu HTTP of zelfs RDP is. In essentie blijkt het een “VPN op de knie” te zijn.

Hier heeft Alex al de helft van het werk gedaan dat hij FreeSSHd op zijn thuiscomputer heeft geïnstalleerd en gestart. Hierdoor kun je via SSH verbinding maken met Windows. In dit geval wordt heel sterk ‘toegestaan’ gezegd. Omdat deze oplossing op de een of andere manier op Windows werkt. Ten eerste heeft het geen fatsoenlijke tekstinterface: een opdrachtregel voor bediening.

Met de gewone cmd kun je in ieder geval niet veel doen met een externe machine. Er is ook Powershell - dit is een modernere en krachtigere oplossing. Met Freesshd kun je de console wijzigen in powershell, maar ik kon er geen verbinding mee maken. Ik heb verbinding gemaakt met CMD - maar het is volledig onbruikbaar:

Ten tweede kon ik in het geval van FreeSSHd geen verbinding maken met een Windows-computer, zelfs niet via een lokaal netwerk, om nog maar te zwijgen van de verbinding via internet. Of beter gezegd, het is mogelijk om verbinding te maken, maar de service loopt vast en crasht; je kunt de Windows-host niet op deze manier beheren.

Daarom neem ik aan dat Alex een ssh-server op Windows nodig had om verbinding te maken met het bestandssysteem of om het als VPN te gebruiken, waarbij iets via SSH werd geproxyd. Hoewel ik betwijfel of FreeSSHd dit zal toestaan. Omdat ten derde: het slaat de instellingen niet eens op als de service opnieuw wordt opgestart, alles gaat verloren. Over het algemeen hoop ik echt dat Alex ons in de reacties zal vertellen waarom hij dit nodig had.

Hoe kun je anders SSH op Windows uitvoeren?

Er is een meer werkbare oplossing: Powershelserver. Hoewel het ook bugs bevat, crasht het tenminste niet. Daarom zou ik aanraden om het te gebruiken om via SSH verbinding te maken met Windows-servers.

Ten eerste werkt het stabiel zonder crashes. En hierdoor kun je vensters echt bedienen via powershell.

Alle instellingen worden normaal opgeslagen. Dezelfde functies zijn beschikbaar als in FreeSSHd en zelfs meer - u kunt SCP gebruiken - dit is het kopiëren van bestanden via SSH.

Maar het meest chique is de console! Het werkt, heren!

Ik maakte eenvoudig verbinding, zonder gedoe met het toevoegen van gebruikers (dit moet in freesshd worden gedaan). En dat simpele commando om de routeringstabel te bekijken werkte perfect en leverde de nodige informatie op. Frisssh “viel” precies voor mij toen ik netstat -rn probeerde te bekijken

Hier kun je echt zien dat Russische karakters niet worden weergegeven. Het is dus gemakkelijk bij ons in te stellen. Ik stel gewoon de codering in die ik nodig heb op de powershellserver, start opnieuw op, maak opnieuw verbinding...

Codering instellen in Powershellserver

Nu hebben we volledige SSH en kunnen we Windows volledig beheren via de console.

Microsoft gaat een eigen oplossing voor SSH maken

Overigens maakte Microsoft in de zomer al bekend dat het ging ontwikkelen oorspronkelijk SSH-ondersteuning voor Powershell in nieuwe versies van Windows. Er zijn nieuwsaankondigingen op Habré en op pcweek (en meer). Daarom kunnen we alleen maar uitkijken naar dit mijlpaalevenement, aangezien het werkelijk een doorbraak zal zijn voor het werk in heterogene netwerken.

Ik heb de andere functies - sftp en scp - niet gecontroleerd, maar om de een of andere reden weet ik zeker dat ze ook prima zullen werken.

Hoe open ik een SSH-poort van buitenaf?

We zijn dus bij het geheime punt gekomen waarvoor dit artikel in de eerste plaats is begonnen. Ik zal de vraag van de lezer beantwoorden.

Port forwarding op een router of modem

Om van buitenaf verbinding te maken met een computer, moet u echt NAT gebruiken, of, in een specifiek geval, . Hoe u dit doet, hangt af van het apparaat dat als gateway wordt gebruikt. Dit kan een ADSL-modem of . In de meeste gevallen kunnen gedetailleerde instructies voor uw apparaat eenvoudig worden gevonden met zoekopdrachten als 'port forwarding' apparaat_model" of "poort doorsturen apparaat_model»

Zo ziet het eruit op mijn Zyxel Keenetic Lite-thuisrouter:

En zo ziet het eruit op een ADSL-modem met de functionaliteit van de Linksys WAG200G-router bij de hand:

Bovendien is dit bij sommige providers misschien technisch niet mogelijk omdat ze geen "wit" aanbieden.

Een poort doorsturen naar een externe server met behulp van een SSH-tunnel

In dit geval is de enige beschikbare manier om verbinding te maken via SSH vanaf een lokale Windows-machine (dezelfde waarmee we via SSH verbinding willen maken) met een externe server. In dit geval moet u SSH-toegang hebben tot een bepaalde server op internet.

Een "omgekeerde" SSH-tunnel opzetten

Dit doorsturen kan eenvoudig worden gedaan met behulp van een eenvoudige SSH-client Putty (die is er ook). Vervolgens kunt u via de doorgestuurde poort verbinding maken met deze zeer externe server.

Het is hier in wezen een lus. We openen een SSH-sessie van Windows naar een externe server, en binnen deze verbinding tunnelen we de SSH-poort van Windows Powershellserver (of FreeSSHd) zelf naar lokale poort 3322 van de externe server. En in dezelfde sessie maken we nu weer verbinding met Windows op Powershell via dezelfde poort 3322... Ik hoop dat je niet in de war bent. Maar... Dit is magie, vrienden! :) SSH-tunnels zijn een bijzondere wereld, met hun hulp kun je ongelooflijke dingen doen, zulke deuren openen dat alle bewakers bitter zouden huilen als ze hier plotseling achter zouden komen... Maar ach.

Als u de Windows SSH-poort met de wereld wilt delen, volstaat het om ip_server:3322 als bestemming op te geven in de omgekeerde tunnelinstellingen. U kunt via SSH verbinding maken met Windows vanaf elke plek waar toegang is tot deze server.

Hoe controleer ik of de poort correct is doorgestuurd?

Heel eenvoudig. U moet controleren of deze open is. In het geval van SSH reageert de open poort met een bericht over de versie ervan. De eenvoudigste manier om een ​​poort te controleren is het telnet-hulpprogramma.

Typ gewoon op de opdrachtregel, gescheiden door een spatie:

telnet domein_of_IP-poort

Als de poort beschikbaar is, ziet u zoiets als dit:

SSH-antwoord als poort beschikbaar is

Als de poort om wat voor reden dan ook niet beschikbaar is, ziet u 'verbinding geweigerd' of 'verbindingstime-out'. In het eerste geval zal dit onmiddellijk gebeuren en betekent dit dat de poort wordt afgesloten door een firewall.

In het tweede geval lijkt het op een 'vastlopen' en kan dit enkele minuten duren - de telnet-client zal proberen een verbinding tot stand te brengen. Dit kan ook een blokkering door een firewall betekenen, maar dan van een ander type. Ofwel simpelweg dat de opgegeven host niet beschikbaar is, ofwel dat de poort daarop gesloten is.

Als u verbinding kon maken via telnet, drukt u op de toetsencombinatie Ctrl+] en voert u in ontslag nemen, en voer vervolgens in. Anders kunt u de sessie niet onderbreken en moet u een nieuw consolevenster openen als u dit nog steeds nodig heeft.

Dit artikel is gewijd aan het instellen van externe toegang tot Ubuntu Server. Het verbindingsprincipe is heel eenvoudig: aan de clientzijde gebruiken we een programma voor externe toegang (bijvoorbeeld Putty), aan de serverzijde installeren en configureren we het OpenSSH-pakket. Bij het verbinden ondergaat de client een autorisatieprocedure met de server en wordt er een gecodeerde verbinding tussen hen tot stand gebracht. Het werkingsprincipe van het SSH-protocol werd in meer detail besproken in het artikel over.

Het netwerkdiagram wordt hieronder weergegeven. Er wordt een externe verbinding met de server tot stand gebracht vanaf de clientcomputer.

We hebben Ubuntu Server op een schone harde schijf geïnstalleerd. Na de installatie moet u de netwerkinterface van de server configureren om toegang te krijgen tot het netwerk. Stel namelijk het IP-adres, het netwerkmasker en de standaardgateway in. Als uw interface al is geconfigureerd, kunt u deze stap overslaan. Netwerkinterface-instellingen worden gespecificeerd in het bestand /etc/netwerk/interfaces. Voor het bewerken gebruiken we een teksteditor nano.

We komen in de bewerkingsmodus van het interfacesbestand. We zijn geïnteresseerd in alles hieronder # De primaire netwerkinterface. Momenteel krijgt de server een IP-adres via DHCP, wat niet helemaal correct is. De server moet een statisch IP-adres hebben, zodat alle knooppunten in het netwerk precies het adres weten. Laten we de netwerkinstellingen handmatig configureren.

Mijn server bevindt zich op het lokale subnet 192.168.1.0/24. Aan de server is IP 192.168.1.2 toegewezen, masker 255.255.255.0, standaardgateway 192.168.1.1, DNS-serveradres 192.168.0.1

Om het bestand op te slaan, drukt u op Ctrl + X -> Y -> Enter. Om de instellingen toe te passen, moet u het netwerkproces opnieuw starten. U kunt de server ook eenvoudig opnieuw opstarten met de opdracht sudo reboot.

Controleer (opdracht ifconfig -a) - instellingen worden toegepast

Alles is klaar voor OpesnSS, dat vanaf de terminal kan worden geïnstalleerd met behulp van de commando's

$ sudo apt-get install openssh-client

$ sudo apt-get install openssh-server

U kunt het starten, stoppen en opnieuw opstarten van de SSH-server regelen met behulp van de opdrachten

$ sudo dienst ssh stop | begin | opnieuw opstarten

In feite heeft u al SSH-toegang tot de server. Maar voor meer verfijning is er een configuratiebestand op /etc/ssh/sshd_config. Toegang tot configuraties wordt alleen vanuit root uitgevoerd.

Aan de clientzijde download je elk programma om verbinding te maken via SSH, ik raad Putty aan. In het programma hoeft u alleen maar het IP-adres van de server in te voeren en er verbinding mee te maken. Wanneer u verbinding maakt, voert u de gebruikersnaam en het wachtwoord in.

___________________________

SSH - (Secure Shell) is een protocol voor afstandsbediening van een computer met het Linux-besturingssysteem. Ssh wordt vooral gebruikt om servers op afstand te beheren via een terminal. Bent u beheerder van meerdere servers of zelfs een gevorderde webmaster, dan wordt u waarschijnlijk vaak geconfronteerd met de noodzaak om via ssh met de ene of andere computer te werken. In Linux wordt hiervoor een ssh-server gebruikt op de machine waarmee de client verbinding moet maken, en op degene van waaruit ze verbinding maken.

In deze handleiding zullen we bekijken hoe je ssh kunt gebruiken, evenals de mogelijkheden ervan waarvan je niet eens op de hoogte was. Hoogstwaarschijnlijk weet u al hoe u via ssh verbinding kunt maken met een server, maar dit hulpprogramma heeft nog veel meer functies, zoals het overbrengen van ssh-bestanden, verbinding maken zonder wachtwoord of het uitvoeren van een script op een externe server. We zullen dit allemaal later in het artikel bespreken.

Maar laten we beginnen met de basis.

De syntaxis van de opdracht is als volgt:

$ssh [opties] gebruikersnaam@server [opdracht]

Het is belangrijk op te merken dat ssh kan werken met twee versies van het protocol. Versies 1 en 2. Het is duidelijk dat versie 2 beter is en meer soorten codering en authenticatie ondersteunt. We zullen in dit artikel niet verder praten over protocolverschillen en ik ga ervan uit dat u versie 2 gebruikt.

SSH-opdrachtopties

Laten we nu eens kijken naar de meest elementaire opties van de ssh-opdracht:

  • F- zet ssh in de achtergrondmodus
  • G- geef externe machines toegang tot lokale poorten
  • l- gebruikersnaam in het systeem
  • N- standaarduitvoer omleiden naar /dev/null
  • P- ssh-poort op de externe machine
  • Q- geen foutmeldingen weergeven
  • v- debug-modus
  • X- X11-omleiding uitschakelen
  • X- X11-omleiding inschakelen
  • C- compressie inschakelen

Dit zijn niet alle opties van het hulpprogramma; de rest valt buiten het bestek van dit artikel. Veel instellingen voor ssh-werking kunnen worden gewijzigd via het configuratiebestand ~/.ssh/config, maar we zullen hier ook niet in detail op ingaan.

Een SSH-server opzetten

De SSH-serverinstellingen bevinden zich in het bestand /etc/ssh/sshd_config. Veel van hen zullen we ook niet aanraken. Laten we alleen de meest interessante bekijken. Open eerst het bestand /etc/ssh/sshd.conf

ssh-poort

Standaard draait ssh op poort 22. Maar dit gedrag is onveilig, omdat een aanvaller deze poort kent en kan proberen een Bruteforce-aanval uit te voeren om het wachtwoord bruut te forceren. De poort wordt gespecificeerd door de regel:

Wijzig de poortwaarde naar de gewenste waarde.

SSH-protocol

Standaard kan de ssh-server op twee protocolversies draaien voor compatibiliteit. Als u alleen protocolversie twee wilt gebruiken, verwijdert u het commentaar op de regel:

En breng het naar deze vorm:

Routetoegang

Standaard is root-toegang via ssh toegestaan, maar dit gedrag is zeer onveilig, dus verwijder het commentaar op de regel:

VergunningRootLogin nr

Alleen een specifieke gebruiker heeft toegang tot SSH

We kunnen ssh-toegang alleen toestaan ​​voor een specifieke gebruiker of groep. Om dit te doen, voegt u de regels toe:

Gebruikers toestaan ​​Gebruiker1, Gebruiker2, Gebruiker3
Groepen toestaan ​​Groep1, Groep2, Groep3

Hier zijn Gebruiker1 en Groep1 de gebruiker en groep waartoe toegang moet worden verleend.

X11-applicaties uitvoeren

Niet iedereen weet het, maar het is mogelijk om ssh te gebruiken om volwaardige X11-applicaties te starten. We zullen hier hieronder over praten, maar om alles te laten werken, moet je deze functie aan de serverkant inschakelen en de volgende regel toevoegen:

X11Doorsturen ja

We hebben de basisopties besproken. Voordat we verder gaan, vergeet niet de ssh-server opnieuw op te starten om de wijzigingen op te slaan:

service sshd opnieuw opstarten

SSH gebruiken

Het belangrijkste doel van dit artikel is om interessante en nuttige manieren te laten zien om ssh te gebruiken waarvan je misschien nog niet wist. Laten we verder gaan met het beste deel: ssh-mogelijkheden.

Verbinding maken met de server

Om eenvoudig via SSH verbinding te maken met de server, gebruikt u de volgende opdracht:

Voer de opdracht uit

We zijn gewend om verbinding te maken met een externe server en pas daarna de noodzakelijke opdrachten uit te voeren, maar in feite kunt u met het ssh-hulpprogramma de gewenste opdracht onmiddellijk uitvoeren zonder de terminal van de externe machine te openen. Bijvoorbeeld:

ssh gebruiker@host ls

Voer de opdracht ls uit op de externe server en stuur de uitvoer terug naar de huidige terminal.

Voer lokaal script uit

Laten we de bash-interpreter op de externe server uitvoeren en ons lokale script eraan doorgeven met behulp van Bash-invoeromleiding:

ssh gebruiker@host "bash -s"< script.sh

Back-up naar een externe server en herstel

We kunnen een schijfback-up rechtstreeks op een externe server opslaan met behulp van ssh. Laten we de uitvoer van dd omleiden met behulp van de omleidingsoperator |, en deze vervolgens aan die kant opslaan in een bestand:

sudo dd if=/dev/sda | ssh gebruiker@host "dd of=sda.img"

Om nu de schijfstatus te herstellen van de kopie die u hebt gemaakt, voert u het volgende uit:

ssh gebruiker@host "dd if=sda.img" | dd van=/dev/sda

Hier en hierboven is /dev/sda de bestandsnaam van uw harde schijf.

Authenticatie zonder wachtwoord

Het gebruik van een ssh-wachtwoord om in te loggen op de server is niet alleen lastig maar ook onveilig, omdat dit wachtwoord op elk moment kan worden geraden. De veiligste en meest gebruikte authenticatiemethode is het gebruik van een RSA-sleutelpaar. De privésleutel wordt op de computer opgeslagen en de openbare sleutel wordt op de server gebruikt om de gebruiker te authenticeren.

Het is heel eenvoudig om dit gedrag te configureren. Maak eerst een sleutel aan met het commando:

ssh-keygen -t rsa

Wanneer u een sleutel aanmaakt, moet u een aantal vragen beantwoorden; als u verbinding wilt maken zonder wachtwoord, laat u het veld Passphare ook leeg.

Vervolgens sturen we de sleutel naar de server:

ssh-copy-id -i ~/.ssh/id_rsa.pub gebruiker@host

Wachtwoord ophalen uit lokaal bestand

Laat me u eraan herinneren dat het opslaan van wachtwoorden in platte tekstbestanden niet veilig is, maar als u dat wilt, dan is het inderdaad mogelijk. Gebruik hiervoor de invoeromleidingsoperator van Bash:

ssh-gebruiker@host< local_file.txt

SSH-begroeting wijzigen

Bij het inloggen via ssh kan er een begroeting getoond worden, deze is zeer eenvoudig te wijzigen. Het bestand /etc/issue is hiervoor verantwoordelijk. Open gewoon dit bestand en voer de gewenste tekst in:

Kijkend naar mislukte SSH-inlogpogingen

Wilt u zien of er mislukte pogingen zijn geweest om via ssh toegang te krijgen tot uw server en vanaf welke IP-adressen? Alle verzoeken worden eenvoudigweg vastgelegd in het bestand /var/log/secure; laten we alleen de noodzakelijke gegevens filteren met de opdracht:

cat /var/log/secure | grep "Mislukt wachtwoord voor"

Bestanden overbrengen via SSH

Naast het uitvoeren van opdrachten kun je via ssh bestanden kopiëren. Hiervoor wordt het scp-hulpprogramma gebruikt. Geef hier gewoon het bestand op dat u wilt overbrengen, de externe server en de map op de server:

$scp /adres/lokaal/bestand gebruiker@host:adres/mappen

Bijvoorbeeld:

scp ~/test.txt gebruiker@host:documenten

Naast het scp-hulpprogramma kan het overbrengen van ssh-bestanden op een slimmere manier worden gedaan. Laten we het bestand lezen en cat gebruiken om het te verzenden, en de stream vervolgens opslaan in een bestand:

cat lokaalbestand | ssh gebruiker@host "cat > extern bestand"

ssh gebruiker@host "cat > extern bestand"< localfile

tar czf - /home/gebruiker/bestand | ssh gebruiker@host tar -xvzf -C /home/remoteuser/

Door ssh-bestanden op deze manier te kopiëren, kunt u hele mappen in één keer verzenden.

Grafische applicaties draaien via ssh

Als je een of andere grafische applicatie op een externe machine moet draaien, is het niet nodig om hiervoor VNC te gebruiken, je kunt rondkomen met de mogelijkheden van ssh. Het programma wordt aan de serverzijde uitgevoerd en u krijgt alleen een venster te zien zodat u alles kunt doen wat u nodig heeft. Bovendien zijn alle gegevens gecodeerd. Om deze functie te laten werken, moet u deze aan de serverzijde inschakelen.

Vervolgens voeren we eenvoudigweg de opdracht uit om de grafische applicatie op de externe server als volgt te starten:

ssh -XC gebruiker@remotehost "eclipse"

Zoals je al hebt gezien, staat optie X X11-omleiding aan de clientzijde toe, en optie C datacompressie.

De ssh-sessie beëindigen

Als je ssh hebt gebruikt met een onstabiel internet en de verbinding van tijd tot tijd wordt verbroken, ben je waarschijnlijk het beu om de terminal te sluiten, omdat er anders op het eerste gezicht geen manier is om de sessie te beëindigen. Wanneer de verbinding met de externe server verbroken is, kunt u geen enkel commando invoeren en werken de toetsencombinaties Ctrl+C, Ctrl+Z, Ctrl+D niet. En ze zullen niet werken omdat de client deze opdrachten naar de server probeert te sturen. Maar er is een oplossing: ontsnappingssequenties. Om hun ondersteuning mogelijk te maken, voegt u de regel toe:

Naar het bestand /etc/ssh/ssh_config

In dit artikel vertellen we je hoe je SSH op Linux, Windows en Mac installeert, hoe je het configureert en hoe je het gebruikt! Elk detail! Het zal interessant zijn!

SSH is een populair protocol voor het op afstand besturen (beheer) van besturingssystemen gebaseerd op de Linux- en Unix-kernels. Voor Linux-beginners is het niet helemaal duidelijk hoe je dit protocol moet installeren, configureren en gebruiken, dus hebben we besloten dit artikel te schrijven om het probleem op te lossen!

Een van de meest populaire besturingssystemen die op de Linux-kernel draaien is Ubuntu, dus we zullen het gebruiken om uitleg te geven over ssh.

Eerst zullen we alle stappen uitleggen aan de hand van het voorbeeld van Linux, en daarna in Mac en Windows!

SSH installeren op Linux-besturingssysteem

In 99,99% van de gevallen heeft Linux al een ssh-client geïnstalleerd, waarmee je verbinding kunt maken met een externe machine. Maar als u verbinding wilt maken met de computer waarop u zich momenteel bevindt of met een andere computer, moet u “de ssh-server downloaden”.

Dit is heel gemakkelijk te doen, alles wat je nodig hebt staat al in de repository's (a la een softwarewinkel), open een terminal en voer de opdracht in:

Sudo apt install openssh-server

Dat wil zeggen: het is noodzakelijk servergedeelte, waardoor de computer via het ssh-protocol toegankelijk is op het netwerk. Eten cliënt deel, dat al op uw computer is geïnstalleerd, en als u dit gebruikt, maakt u verbinding met een externe computer.

Verbinding via SSH (met wachtwoord)

Open een terminal en voer de opdracht in om verbinding te maken met de externe machine:

Ssj Gebruikersnaam@IP-adres

Eerst schrijven we ssh, dan de gebruikersnaam die op de externe machine staat, dan het @-teken (hond) en het IP-adres. Hier is een voorbeeld:

Ssh sasha @ 100.08.30.48

In de regel vindt de ssh-verbinding plaats op poort 22. Als u deze met kracht wijzigt, moet u deze opgeven. Om dit te doen, schrijft u het -p-nummer aan het einde. Hier is een voorbeeld:

Ssh sasha @ 100.08.30.48 -P 3040

Nadat u verbinding heeft gemaakt, en als dit de eerste verbinding met de machine was, moet u de machine toevoegen aan de vertrouwde machines - schrijf ja en druk op Enter. Dit wordt één keer gedaan.

Maak een SSH-sleutel aan en maak verbinding zonder wachtwoord!

Om het wachtwoord niet te onthouden en niet elke keer in te voeren, vooral als je veel Linux-servers hebt, kun je een speciale SSH-sleutel aanmaken. Met deze sleutel kunt u verbinding maken vanaf een reeds “bekende” machine met een “bekende” server, zonder een wachtwoord te gebruiken.

Hoe maak je een SSH-sleutel aan?

We zullen een sleutel aanmaken op de computer die u momenteel gebruikt, en dan moet u deze naar onze server kopiëren!

Maak een sleutel voor de huidige computer:

Ssh-keygen -t rsa

De sleutel is aangemaakt, nu moet je deze toevoegen aan de externe machine of server.

Hoe voeg ik een SSH-sleutel toe aan de server?

Om dit te doen, voert u de opdracht in:

ssh-kopie-id Gebruikersnaam@IP-adres

Ssh-copy-id sasha @ 100.08.30.48

U heeft nu de mogelijkheid om verbinding te maken met een server of andere machine zonder een sleutel te gebruiken, simpelweg door uw gebruikersnaam en wachtwoord in te voeren!

Windows SSH-client

Een van de populairste programma's voor het werken met Linux-servers via SSH op Windows is het programma Putty. U kunt deze Windows SSH-client downloaden op dit adres - putty.org.

Verbinding maken via SSH met een wachtwoord in Windows

Verbinding maken met Putty via SSH is heel eenvoudig! Voer het IP-adres in als u de poort hebt gewijzigd, geef vervolgens een andere poort op en klik op Openen:
en na het verbinden, login en wachtwoord!

Verbinding maken via SSH met behulp van een sleutel in Windows

Als je niet elke keer een wachtwoord wilt invoeren, maar in Putty een ssh-sleutel wilt gebruiken, dan moet je, net als in Linux, eerst een sleutel aanmaken en deze vervolgens naar de server overbrengen.

Maak een sleutel


Sluit het programma nog niet en voer Putty uit om verbinding te maken

Een sleutel overdragen


Mac SSH-client

Omdat macOS gebaseerd is op een UNIX-systeem, kun je via ssh rechtstreeks vanaf de terminal verbinding maken!

Als u geen wachtwoord wilt gebruiken, moet u eerst Homebrew installeren:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Er is ook een handige mac ssh-client - Termius.

SSH-client voor Android en iOS

De handigste SSH-client voor iOS en Android is de Termius-applicatie!

Bestanden overbrengen en downloaden via SSH (SCP)

Om een ​​bestand van uw lokale machine naar de server te uploaden via ssh in Linux en macOS:

Scp-bestand1.tar root@ip_adres:/home/dir

Kopieer een bestand van de server naar uw lokale Linux- of macOS-computer:

Scp-gebruikersnaam@ip_adres:/home/file1.tar /var/www/

Van server naar server:

Scp-gebruiker@server_ip1:/home/bestand.txt gebruiker@server_ip2:/home/

Voor Windows

Gebruik pscp om bestanden via SSH op Windows te verplaatsen.

pscp.exe bestand.zip root@ip_server: /var/www/

SSH instellen

Als u een SSH-login rechtstreeks als root moet toevoegen:

De SSH-poort wijzigen

Omdat ssh standaard op poort 22 is geconfigureerd, wordt het onveilig om de server te gebruiken. Daarom is het de moeite waard om de poort te veranderen!

en wijzig de poortwaarden in de vereiste waarden:

# Welke poorten, IP's en protocollen we luisteren naar poort 22

Alleen inloggen met de SSH-sleutel:

Bewerk met behulp van nano het sshd_config-document en voer de opdracht in:

Sudo nano /etc/ssh/sshd_config

Wijzig de WachtwoordAuthenticatie-waarden van ja in nee:

RSAAuthenticatie ja PubkeyAuthenticatie ja WachtwoordAuthenticatie nee

Heeft u nog vragen? Schrijf ze in de reacties, vertel ons wat je hebt gedaan of andersom!

Dat is het! Lees meer nuttige artikelen en instructies in de sectie. Blijf op de site, het wordt nog interessanter!