SSH, mer än ett säkert skal

SSH (Secure Shell) är ett protokoll som hjälper oss att säkert komma åt fjärrdatorer, i princip som Telnet, men använder krypteringsalgoritmer som hjälper oss att hålla vår anslutning säker, speciellt om vi vill komma åt datorer som utför en viktig funktion i ett nätverk. organisation.

För att komma åt måste vi generellt ange vårt användarnamn och adressen till datorn så att SSH-servern ber oss om åtkomstlösenordet:

ssh usuario@equiporemoto

Från det ögonblick som klienten initierar den första anslutningen mellan fjärrdatorn och oss, reser informationen redan säkert, vilket förhindrar någon från att få våra åtkomstuppgifter till nämnda dator, men SSH är ett mycket anpassningsbart protokoll som erbjuder oss många möjligheter.

SCP

Den första av dessa är att kunna överföra filer mellan klienten och fjärrdatorn utan att behöva montera en FTP- eller NFS-server, helt enkelt med SCP (Secure CoPy) som de flesta SSH-servrar implementerar:

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

SSH-tunnling

Denna funktion är mycket användbar eftersom den tillåter oss att skicka och ta emot information som inte nödvändigtvis är skalkommandon mellan klienten och fjärrdatorn, till exempel vanlig surfning. Om du inte gissar vilken användning detta kan ha, tänk på följande: du måste komma åt en sida, men platsen där du befinner dig har en brandvägg implementerad som blockerar just den sidan, därför kan vi göra "tunneling" med en fjärrkontroll dator som inte har nämnda block och bläddrar på sidan genom vår SSH-session:

ssh -D 8888 usuario@equiporemoto

När vi väl är anslutna lyssnar vår SSH-klient på port 8888 som en proxyserver så att vi kan konfigurera vår webbläsare och all trafik överförs via SSH-sessionen

SSH -tunnel

Ett annat exempel som uppstår för mig är när vi på grund av en viss geografisk begränsning inte kan komma åt en webbtjänst varifrån vi är, när vi gör tunneln, nämnda webbtjänst upptäcker IP-adressen för vår fjärrserver som källa, inte vår klient-IP. Detta motsvarar något VPN (Virtual Private Network)

Omvänd SSH

Om vi ​​av någon anledning behöver komma åt en dator som ligger bakom en brandvägg och den inte tillåter oss att omdirigera SSH-trafik till den, kan vi göra en "omvänd SSH", på ett sådant sätt att datorn ansluter till en annan SSH-server, på som vi också kan ansluta till för att komma åt utrustningen bakom brandväggen. Ett exempel som kommer att tänka på är när vi vill hjälpa en vän som inte har någon aning om hur man konfigurerar en omdirigering på sitt modem, men vi behöver fjärråtkomst till hans dator:

Vän -> Modem -> SSH-server <- Om oss

Stegen att följa är relativt mycket enkla:

Vän
ssh -R 9999:localhost:22 usuario@servidorssh

oss
ssh usuario@servidorssh
Väl inne i SSH-servern kan vi ansluta till vår väns team med
ssh amigo@localhost -p 9999

Som du kan se ligger all magi i parametern -R, som säger till mellanservern att vår väns dator på port 9999 lyssnar nu som server.

Det här är bara några möjligheter som SSH erbjuder oss, men jag uppmanar dig att experimentera med till exempel mer; vi kan göra obevakade skript med RSA-tangenter, omdirigera X-sessioner (grafiskt läge) till vår grafiska miljö, för att bara nämna några.


Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för uppgifterna: Miguel Ángel Gatón
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.

  1.   Astro sade

    Utmärkt artikel, jag är ivrig att komma hem och börja träna dem.

    1.    adr14n sade

      Tack så mycket! Det är faktiskt mitt första blogginlägg och det är riktigt trevligt att läsa dessa kommentarer. Skål!

  2.   Pablo cardozo sade

    Just igår frågade jag något om detta ämne, och det är följande.

    Finns det ett sätt att kunna scp en hel mapp men med hänsyn till fildatumet? Med andra ord har jag en mapp med många filer som jag laddade ner för en tid sedan, jag är intresserad av att bara ladda ner det som har laddats upp till den mappen från ett visst datum.

    Hälsningar och många tack i förväg.

    1.    livlig sade

      Du kan göra det med RSYNC över SSH. 😉

      1.    giskard sade

        rsync är locket på burken !!! 😀

      2.    Eduardo sade

        Jag rekommenderar att du försöker unison, det är SPEKTAKULÄR, det finns i reporna (åtminstone debian och ubuntu)

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

        Jag använder den för att göra dagliga säkerhetskopior av min anteckning till en annan dator, förutom att jag har synkroniserade kataloger på olika datorer.

        Det är väldigt enkelt att använda

        Jag hoppas att det är användbart för dig!

        exitos
        Eduardo

    2.    Vänsterhänt sade

      Det verkar mer som en uppgift som för rsync, men jag vet inte om det finns en parameter för att göra det specifikt, om inte kanske det måste hanteras från ett skript

    3.    adr14n sade

      Vad jag kan tänka mig är att göra en ls ordnad efter datum, och därifrån kopiera de du behöver med en enkel scp, eftersom scp inte har så många funktioner som de säger, den har rsync.

  3.   anonym sade

    Jag intygar att omvänd ssh är lyxig, jag har använt den mellan min dator och en annan som var mer än 700 km bort och utan problem.
    Tack för dessa artiklar, de är mycket värdefulla.

  4.   upphöra sade

    Så salt! Haha, jag visste inte att ssh hade så många möjligheter, jag vill redan lära mig att ställa in en ssh-server och börja experimentera med dess funktioner, bara en sak, kan du förklara vad varje parameter gör?

    1.    adr14n sade

      Enligt ssh-mannen själv tjänar -D till att ange en 'dynamisk applikationsvidarebefordrare' lokalt, som, som jag förklarade i artikeln, tjänar till att passera trafik genom en tunnel inom samma SSH-session. -R anger fjärrporten som kommer att omdirigeras till vår lokala dator genom "vidarebefordran". Och slutligen anger -p till vilken port klienten ska ansluta, när den inte använder standardporten: 22

  5.   manuelmdn sade

    Bra som berör detta ämne, jag har en fråga om ssh-tangenterna, kan du generera mer än en nyckel för olika tjänster? Jag hoppas att de gjorde ett inlägg om hantering av ssh-tangenterna, jag vet att det finns svaret på google. kommer att prata om det,

    Hälsningar!

    1.    adr14n sade

      När du använder autentisering via SSL-nycklar kan du exportera samma (datorns) till olika tjänster och på samma sätt, om din dator är servern, kan du införliva olika nycklar från olika datorer. Jag vet inte om jag svarade på din fråga, men jag förstod det. Skål

  6.   Luis sade

    Jag tror att jag kommer ihåg att det fanns ett sätt genom ssh som gjorde det möjligt för oss att köra en applikation på distans och se den på vår dator som om det vore en lokal applikation.

    Vi kan till exempel köra Firefox, vi ser och kontrollerar den på vår lokala dator men processen körs på fjärrdatorn.

    Särskilt användbart på datorer med få resurser men tyvärr kontrollerar jag inte problemet och jag vet inte hur jag konfigurerar datorerna för att göra det.

    Vet någon något om det?

    1.    Personal sade

      För något liknande skulle det vara bekvämt att använda VNC och du kan tunnelera med SSH.

      1.    x11tete11x sade

        @Staff för mig skulle det inte vara bekvämt att använda VNC .. med VNC om jag inte är dålig tar du med hela skrivbordet ..

        @Luis, vad du gör görs helt enkelt genom att lägga till parametern "-X" i ssh (du måste tillåta X vidarebefordran på din server)

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

      2.    Personal sade

        @ x11tete11x
        Med tanke på vad Luis nämnde tänkte jag på att erbjuda honom ett annat alternativ, eftersom:

        1. "Särskilt användbart på datorer med få resurser ..."

        -I fallet med en enskild applikation kan det hända att den inte förbrukar så många resurser men att försöka öppna 10 fönster med x vidarebefordran fortsätter att få systemet att fungera hårdare än att ha en enda VNC-instans, eftersom VNC inte "tar hela skrivbordet"
        -När du stänger programmet på klienten hamnar det detsamma på servern (någon korrigerar mig om jag har fel), medan du med VNC till exempel kan lämna en torrentnedladdning över natten och logga in igen på morgonen och allt skulle fortsätta precis som jag hade lämnat.
        -VNC är ett systemagnostiskt protokoll, du kan komma åt det från en klient i Win, Andorid, Mac OSX, etc. och använda dina GNU / Linux-program utan att behöva installera något annat än själva VNC-klienten.

        Och 2. "... tyvärr kontrollerar jag inte problemet och jag vet inte hur jag ska konfigurera datorerna för att göra det."

        Det är mycket lättare (och utan risk att skriva något fel och starta om utan skrivbordet) att installera VNC och konfigurera SSH-tunneln (Det görs med GUI) än att flytta X-konfigurationsfilerna.

      3.    Luis sade

        Tack båda för dina kommentarer.

        Jag har använt SSH tillsammans med SHFS länge för att komma åt fjärrinnehåll på min lilla server, men jag har aldrig kunnat köra fjärrprogram i en grafisk miljö.

        Jag ska försöka båda alternativen för att se hur det fungerar. Vad jag pratade om först verkar enklare eftersom du enligt x11tete11x bara behöver lägga till en parameter.

        Då ska jag se om jag kan hitta ett enkelt sätt att konfigurera VNC eftersom jag är lite stor, jag är en Arch-användare så det kommer säkert att finnas information på wiki, en annan sak är att jag får reda på det. Hehehe

        En hälsning.

    2.    adr14n sade

      Det kan göras genom att skicka parametern -X till sessionen, men du måste ha din X-server konfigurerad för att acceptera anslutningar från en dator i nätverket, jag tror att den är konfigurerad med verktyget xhost. Som personalen nämner är VNC också ett mycket bra alternativ

    3.    mario sade

      Det är X11 vidarebefordran, här på samma sida finns det ett inlägg om det:
      https://blog.desdelinux.net/x11-forwarding-a-traves-de-ssh/

    4.    Luis sade

      Tack för info vänner.

      Jag sa, jag ska göra det med båda alternativen för att se vilken som passar mig bättre.

      Hälsningar!