SSH, meer dan een veilige shell

SSH (beveiligde shell) is een protocol dat ons helpt om veilig toegang te krijgen tot externe computers, in principe zoals Telnet dat doet, maar met behulp van coderingsalgoritmen die ons helpen onze verbinding veilig te houden, vooral als we toegang willen krijgen tot computers die een belangrijke functie vervullen binnen een organisatie.

Over het algemeen moeten we om toegang te krijgen onze gebruikersnaam en het adres van de computer opgeven, zodat de SSH-server ons om het toegangswachtwoord vraagt:

ssh usuario@equiporemoto

Vanaf het moment dat de client de eerste verbinding tussen de externe computer en ons tot stand brengt, reist de informatie al veilig, waardoor iemand onze toegangsgegevens voor die computer niet kan verkrijgen, maar SSH is een zeer aanpasbaar protocol dat ons veel mogelijkheden biedt.

SCP

De eerste is om bestanden tussen de client en de externe computer uit te kunnen wisselen, zonder dat je een FTP- of NFS-server hoeft te koppelen, simpelweg door SCP (Secure CoPy) te gebruiken dat de meeste SSH-servers implementeren:

scp archivo.tar.gz usuario@equiporemoto:/home/usuario
scp usuario@equiporemoto:/var/log/messages messages.txt

SSH-tunneling

Deze functie is erg handig, omdat het ons in staat stelt informatie te verzenden en te ontvangen die niet noodzakelijkerwijs shell-opdrachten zijn tussen de client en de externe computer, bijvoorbeeld gewoon browsen. Als je niet raadt wat dit voor nut kan hebben, denk dan aan het volgende: je moet een pagina openen, maar de plaats waar je je bevindt heeft een firewall die precies die pagina blokkeert, daarom kunnen we 'tunnelen' met een afstandsbediening computer die de genoemde sloten niet heeft en door de pagina bladeren via onze SSH-sessie:

ssh -D 8888 usuario@equiporemoto

Eenmaal verbonden, 'luistert' onze SSH-client op poort 8888 als een proxyserver, zodat we onze browser kunnen configureren en al het verkeer via de SSH-sessie wordt verzonden

SSH-tunnel

Een ander voorbeeld dat bij me opkomt, is wanneer we, vanwege een geografische beperking, geen toegang hebben tot een webservice van waaruit we zijn, bij het maken van de tunnel, die webservice het IP-adres van onze externe server als de bron detecteert, niet het IP-adres van onze client. Dit komt enigszins overeen met VPN's (Virtual Private Network)

Omgekeerde SSH

Als we om de een of andere reden toegang moeten krijgen tot een computer die zich achter een firewall bevindt en dit ons niet toestaat om SSH-verkeer ernaar om te leiden, kunnen we een 'reverse SSH' uitvoeren, zodanig dat die computer verbinding maakt met een andere SSH-server, waarmee we ook verbinding kunnen maken, om toegang te krijgen tot de apparatuur achter de firewall. Een voorbeeld dat in ons opkomt, is wanneer we een vriend willen helpen die geen idee heeft hoe hij een omleiding op zijn modem moet configureren, maar we op afstand toegang tot zijn computer nodig hebben:

Vriend -> Modem -> SSH-server <- Over ons

De te volgen stappen zijn relatief eenvoudig:

Amigo
ssh -R 9999:localhost:22 usuario@servidorssh

Over ons
ssh usuario@servidorssh
Eenmaal binnen de SSH-server kunnen we verbinding maken met het team van onze vriend via
ssh amigo@localhost -p 9999

Zoals je kunt zien, ligt alle magie in de parameter -R, die de tussenliggende server vertelt dat op poort 9999 de computer van onze vriend nu luistert als een server.

Dit zijn slechts enkele mogelijkheden die SSH ons biedt maar ik nodig je uit om bijvoorbeeld met nog meer te experimenteren; we kunnen onbeheerde scripts uitvoeren met RSA-sleutels, X-sessies (grafische modus) omleiden naar onze grafische omgeving, om er maar een paar te noemen.


Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: Miguel Ángel Gatón
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.

  1.   Astro zei

    Uitstekend artikel, ik kijk ernaar uit om naar huis te gaan en ze te oefenen.

    1.    adr14n zei

      Heel erg bedankt! Het is eigenlijk mijn eerste blogpost en het is erg leuk om deze reacties te lezen. Proost!

  2.   Paul Cardoso zei

    Gisteren vroeg ik iets over dit onderwerp, en het is het volgende.

    Is er een manier om een ​​hele map te scpen, maar houdt u rekening met de datum van de bestanden? Met andere woorden, ik heb een map met veel bestanden die ik enige tijd geleden heb gedownload, ik ben geïnteresseerd in het downloaden van alleen wat er vanaf een bepaalde datum naar die map is geüpload.

    Groeten en bij voorbaat hartelijk dank.

    1.    levendig zei

      Je kunt het doen met RSYNC via SSH. 😉

      1.    giskard zei

        rsync is het deksel van de pot !!! 😀

      2.    Eduardo zei

        Ik raad je aan om unisono te proberen, het is SPECTACULAIR, het is beschikbaar in de repo's (tenminste debian en ubuntu)

        http://www.cis.upenn.edu/~bcpierce/unison/

        Ik gebruik het om dagelijkse back-ups van mijn notitie naar een andere computer te maken, naast gesynchroniseerde mappen op verschillende computers.

        Het is heel gemakkelijk te gebruiken

        Ik hoop dat het nuttig voor je is!

        Exitos
        Eduardo

    2.    linkshandige zei

      Dat lijkt meer een taak zoals voor rsync, maar ik weet niet of er een parameter is om dat specifiek te doen, zo niet, dan zou het misschien moeten worden afgehandeld vanuit een script

    3.    adr14n zei

      Wat bij me opkomt is om een ​​ls te maken geordend op datum, en van daaruit degene die je nodig hebt te kopiëren met een simpele scp, omdat de scp niet zoveel functies heeft als ze zeggen, het heeft rsync.

  3.   anoniem zei

    Ik verklaar dat de omgekeerde ssh luxueus is, ik heb hem gebruikt tussen mijn pc en een andere die meer dan 700 km verwijderd was en geen problemen.
    Bedankt voor deze artikelen, ze zijn erg waardevol.

  4.   ophouden zei

    Zo zout! Haha Ik wist niet dat ssh zoveel mogelijkheden had, ik wil al leren hoe ik een ssh-server moet opzetten en beginnen te experimenteren met zijn mogelijkheden, maar één ding, kun je uitleggen wat elke parameter doet?

    1.    adr14n zei

      Volgens de ssh-man zelf dient de -D om lokaal een 'dynamic application forwarder' te specificeren, die, zoals ik in het artikel heb uitgelegd, dient om verkeer door een tunnel te leiden binnen dezelfde SSH-sessie. De -R geeft de externe poort aan die via 'doorsturen' naar onze lokale computer wordt doorgestuurd. En tot slot geeft de -p aan met welke poort de client verbinding moet maken, wanneer deze de standaardpoort niet gebruikt: 22

  5.   manuelmdn zei

    Goed dat dit onderwerp raakt, ik heb een vraag over de ssh-sleutels, kun je meer dan één sleutel genereren voor verschillende services? Ik hoop dat ze een bericht hebben geplaatst over het beheer van de ssh-sleutels, ik weet dat er in Google het antwoord is., Maar hopelijk praten ze erover,

    Groeten!

    1.    adr14n zei

      Wanneer u authenticatie via SSL-sleutels gebruikt, kunt u dezelfde (die van uw computer) naar verschillende services exporteren en op dezelfde manier, als uw computer de server is, kunt u verschillende sleutels van verschillende computers gebruiken. Ik weet niet of ik uw vraag heb beantwoord, maar dat begreep ik. Proost

  6.   Luis zei

    Ik denk dat ik me herinner dat er een weg was door ssh waardoor we een applicatie op afstand konden draaien en op onze computer konden bekijken alsof het een lokale applicatie was.

    We zouden bijvoorbeeld firefox kunnen draaien, we zien en beheren het op onze lokale computer, maar het proces draait op de externe computer.

    Vooral handig op computers met weinig bronnen, maar helaas heb ik geen controle over het probleem en weet ik niet hoe ik de computers moet configureren om dat te doen.

    Weet iemand er iets van?

    1.    Medewerkers zei

      Voor zoiets zou het handig zijn om VNC te gebruiken en je kunt tunnelen met SSH.

      1.    x11tete11x zei

        @Staff voor mij zou het niet handig zijn om VNC te gebruiken .. met VNC als ik niet slecht ben neem je de hele desktop mee ..

        @Luis, wat je doet doe je door simpelweg de parameter "-X" toe te voegen aan de ssh (je moet X forwarding toestaan ​​op je server)

        http://i.imgur.com/NCpfzBL.jpg

      2.    Medewerkers zei

        @ x11tete11x
        Gezien wat Luis zei, dacht ik eraan hem een ​​ander alternatief aan te bieden, aangezien:

        1. "Vooral handig op computers met weinig bronnen ..."

        -In het geval van een enkele applicatie verbruikt het misschien niet zoveel bronnen, maar als je 10 vensters probeert te openen met x forwarding, blijft het systeem harder werken dan een enkele VNC-instantie, aangezien VNC niet "de hele desktop brengt"
        -Bij het afsluiten van het programma op de client komt het hetzelfde terecht op de server (iemand corrigeert me als ik het mis heb), terwijl je met VNC bijvoorbeeld de hele nacht een torrent download kunt laten en 's ochtends weer kunt inloggen en alles zou doorgaan zoals ik was vertrokken.
        -VNC is een systeemonafhankelijk protocol, u kunt het openen vanaf een client in Win, Andorid, Mac OSX, enz. en gebruik je GNU / Linux-programma's, zonder dat je iets anders hoeft te installeren dan de VNC-client zelf.

        En 2. "... helaas heb ik geen controle over het probleem en ik weet niet hoe ik de computers moet configureren om dat te doen."

        Het is veel gemakkelijker (en zonder risico om iets fout te typen en opnieuw te starten zonder desktop) om VNC te installeren en de SSH-tunnel te configureren (het wordt gedaan met GUI) dan om de X-configuratiebestanden te verplaatsen.

      3.    Luis zei

        Bedankt voor jullie opmerkingen.

        Ik gebruik SSH al een lange tijd samen met SHFS om toegang te krijgen tot externe inhoud van mijn kleine server, maar ik heb nog nooit externe applicaties kunnen draaien in een grafische omgeving.

        Ik zal beide opties proberen om te zien hoe het werkt. Wat ik zei lijkt in eerste instantie eenvoudiger, omdat je volgens x11tete11x alleen een parameter hoeft toe te voegen.

        Later zal ik zien of ik een eenvoudige manier kan vinden om VNC te configureren, aangezien ik een beetje groot ben, ik een Arch-gebruiker ben, dus er zal zeker informatie op de wiki staan, er is iets anders dat ik moet uitzoeken. Hehehe

        Een groet.

    2.    adr14n zei

      Het kan worden gedaan door de parameter -X door te geven aan de sessie, maar je moet je X-server hebben geconfigureerd om verbindingen van een computer op het netwerk te accepteren, ik denk dat dat is geconfigureerd met het xhost-hulpprogramma. Zoals Staff vermeldt, is VNC ook een zeer goede optie

    3.    mario zei

      Het is X11-forwarding, hier op dezelfde site is daar een bericht over:
      https://blog.desdelinux.net/x11-forwarding-a-traves-de-ssh/

    4.    Luis zei

      Bedankt voor de info vrienden.

      Ik zei, ik zal het doen door beide opties te gebruiken om te zien welke het beste bij mij past.

      Groeten!