SSH, mehr als eine sichere Shell

SSH (sichere SHell) ist ein Protokoll, das uns hilft, sicher auf Remotecomputer zuzugreifen, im Grunde wie Telnet, aber Verschlüsselungsalgorithmen verwendet, die uns helfen, unsere Verbindung sicher zu halten, insbesondere wenn wir auf Computer zugreifen möchten, die eine wichtige Funktion innerhalb eines Netzwerks ausführen.

Im Allgemeinen müssen wir für den Zugriff unseren Benutzernamen und die Adresse des Computers angeben, damit der SSH-Server uns nach dem Zugriffskennwort fragt:

ssh usuario@equiporemoto

Von dem Moment an, in dem der Client die erste Verbindung zwischen dem Remotecomputer und uns herstellt, sind die Informationen bereits sicher und verhindern, dass jemand unsere Zugangsdaten zu diesem Computer erhält. SSH ist jedoch ein sehr anpassbares Protokoll, das uns viele Möglichkeiten bietet.

SCP

Die erste Möglichkeit besteht darin, Dateien zwischen dem Client und dem Remotecomputer übertragen zu können, ohne dass ein FTP- oder NFS-Server bereitgestellt werden muss, indem einfach SCP (Secure CoPy) verwendet wird, das die meisten SSH-Server implementieren:

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

SSH-Tunneling

Diese Funktion ist sehr nützlich, da wir damit Informationen senden und empfangen können, bei denen es sich nicht unbedingt um Shell-Befehle zwischen dem Client und dem Remotecomputer handelt, z. B. beim normalen Surfen. Wenn Sie nicht wissen, welchen Nutzen dies haben könnte, denken Sie an Folgendes: Sie müssen auf eine Seite zugreifen, aber an dem Ort, an dem Sie sich befinden, ist eine Firewall implementiert, die genau diese Seite blockiert. Daher können wir mit einer Fernbedienung "tunneln" Computer, der diese Sperren nicht hat, und Durchsuchen dieser Seite durch unsere SSH-Sitzung:

ssh -D 8888 usuario@equiporemoto

Sobald die Verbindung hergestellt ist, überwacht unser SSH-Client Port 8888 als Proxyserver, sodass wir unseren Browser konfigurieren können und der gesamte Datenverkehr über die SSH-Sitzung übertragen wird

SSH-Tunnel

Ein anderes Beispiel, das mir einfällt, ist, wenn wir aufgrund einer geografischen Einschränkung nicht auf einen Webdienst zugreifen können, von dem aus wir uns beim Erstellen des Tunnels befinden. Dieser Webdienst erkennt die IP unseres Remote-Servers als Quelle und nicht als Client-IP. Dies entspricht in etwa VPNs (Virtual Private Network).

SSH umkehren

Wenn wir aus irgendeinem Grund auf einen Computer zugreifen müssen, der sich hinter einer Firewall befindet und der es uns nicht erlaubt, SSH-Verkehr darauf umzuleiten, können wir einen "Reverse SSH" durchführen, so dass dieser Computer eine Verbindung zu einem anderen SSH-Server herstellt. an dem wir uns auch verbinden können, um auf die Geräte hinter der Firewall zuzugreifen. Ein Beispiel, das mir in den Sinn kommt, ist, wenn wir einem Freund helfen möchten, der keine Ahnung hat, wie eine Umleitung auf seinem Modem konfiguriert werden soll, aber remote auf seinen Computer zugreifen müssen:

Freund -> Modem -> SSH-Server <- Über uns

Die folgenden Schritte sind relativ einfach:

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

Uber uns
ssh usuario@servidorssh
Sobald wir uns auf dem SSH-Server befinden, können wir uns mit dem Team unseres Freundes verbinden
ssh amigo@localhost -p 9999

Wie Sie sehen können, liegt die ganze Magie im Parameter -R, der dem Zwischenserver mitteilt, dass der Computer unseres Freundes an Port 9999 jetzt als Server lauscht.

Dies sind nur einige Möglichkeiten, die SSH uns bietet, aber ich lade Sie ein, zum Beispiel mit einigen weiteren zu experimentieren. Wir können unbeaufsichtigte Skripte mit RSA-Schlüsseln erstellen und X-Sitzungen (grafischer Modus) in unsere grafische Umgebung umleiten, um nur einige zu nennen.


Hinterlasse einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert mit *

*

*

  1. Verantwortlich für die Daten: Miguel Ángel Gatón
  2. Zweck der Daten: Kontrolle von SPAM, Kommentarverwaltung.
  3. Legitimation: Ihre Zustimmung
  4. Übermittlung der Daten: Die Daten werden nur durch gesetzliche Verpflichtung an Dritte weitergegeben.
  5. Datenspeicherung: Von Occentus Networks (EU) gehostete Datenbank
  6. Rechte: Sie können Ihre Informationen jederzeit einschränken, wiederherstellen und löschen.

  1.   Astro sagte

    Ausgezeichneter Artikel, ich bin gespannt darauf, nach Hause zu kommen und sie zu üben.

    1.    adr14n sagte

      Vielen Dank! Es ist eigentlich mein erster Blog-Beitrag und es ist wirklich schön, diese Kommentare zu lesen. Prost!

  2.   Pablo cardozo sagte

    Erst gestern habe ich etwas zu diesem Thema gefragt, und es ist das Folgende.

    Gibt es eine Möglichkeit, einen ganzen Ordner zu scpen, ohne das Datum der Dateien zu berücksichtigen? Mit anderen Worten, ich habe einen Ordner mit vielen Dateien, die ich vor einiger Zeit heruntergeladen habe. Ich möchte nur das herunterladen, was ab einem bestimmten Datum in diesen Ordner hochgeladen wurde.

    Grüße und vielen Dank im Voraus.

    1.    lebhaft sagte

      Sie können dies mit RSYNC über SSH tun. 😉

      1.    giskard sagte

        rsync ist der Deckel des Glases !!! 😀

      2.    Eduardo sagte

        Ich empfehle Ihnen, unisono zu versuchen, es ist SPECTACULAR, es ist in den Repos verfügbar (Debian und Ubuntu mindestens)

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

        Ich verwende es, um meine Notizen täglich auf einem anderen Computer zu sichern und Verzeichnisse auf verschiedenen Computern zu synchronisieren.

        Es ist sehr einfach zu bedienen

        Ich hoffe es ist nützlich für dich!

        Exitos
        Eduardo

    2.    Lefty sagte

      Das scheint eher eine Aufgabe für rsync zu sein, aber ich weiß nicht, ob es einen Parameter gibt, der dies speziell tut. Wenn nicht, müsste er möglicherweise von einem Skript aus behandelt werden

    3.    adr14n sagte

      Was ich mir vorstellen kann, ist, ein nach Datum geordnetes ls zu erstellen und von dort die benötigten mit einem einfachen scp zu kopieren, da das scp nicht so viele Funktionen hat, wie sie sagen, es hat rsync.

  3.   anonym sagte

    Ich bestätige, dass das Reverse-SSH luxuriös ist. Ich habe es zwischen meinem PC und einem anderen verwendet, der mehr als 700 km entfernt war und keine Probleme hatte.
    Vielen Dank für diese Artikel, sie sind sehr wertvoll.

  4.   aufhören sagte

    So salzig! Haha, ich wusste nicht, dass ssh so viele Möglichkeiten hat. Ich möchte bereits lernen, wie man einen ssh-Server einrichtet und mit seinen Funktionen experimentiert. Nur eines: Können Sie erklären, was jeder Parameter tut?

    1.    adr14n sagte

      Laut dem SSH-Mann selbst dient -D dazu, lokal eine 'dynamische Anwendungsweiterleitung' anzugeben, die, wie ich im Artikel erläutert habe, dazu dient, Datenverkehr innerhalb derselben SSH-Sitzung durch einen Tunnel zu leiten. Das -R gibt den Remote-Port an, der über eine Weiterleitung an unseren lokalen Computer umgeleitet wird. Und schließlich gibt das -p an, zu welchem ​​Port der Client eine Verbindung herstellen soll, wenn er nicht den Standardport verwendet: 22

  5.   manuelmdn sagte

    Gut, dass dieses Thema berührt wird. Ich habe eine Frage zu den SSH-Schlüsseln. Können Sie mehr als einen Schlüssel für verschiedene Dienste generieren? Sie werden darüber sprechen.

    Viele Grüße!

    1.    adr14n sagte

      Wenn Sie die Authentifizierung über SSL-Schlüssel verwenden, können Sie denselben (Ihren Computer) in verschiedene Dienste exportieren. Wenn Ihr Computer der Server ist, können Sie auf dieselbe Weise verschiedene Schlüssel von verschiedenen Computern einbinden. Ich weiß nicht, ob ich Ihre Frage beantwortet habe, aber ich habe das verstanden. Prost

  6.   Luis sagte

    Ich denke, ich erinnere mich, dass es einen Weg durch ssh gab, der es uns ermöglichte, eine Anwendung remote auszuführen und auf unserem Computer anzuzeigen, als wäre es eine lokale Anwendung.

    Zum Beispiel könnten wir Firefox ausführen, wir sehen und steuern es auf unserem lokalen Computer, aber der Prozess läuft auf dem Remotecomputer.

    Besonders nützlich auf Computern mit wenigen Ressourcen, aber leider kontrolliere ich das Problem nicht und weiß nicht, wie ich die Computer dafür konfigurieren soll.

    Weiß jemand etwas darüber?

    1.    Unser Team sagte

      Für so etwas wäre es bequem, VNC zu verwenden und Sie können mit SSH tunneln.

      1.    x11tete11x sagte

        @Staff für mich wäre es nicht bequem, VNC zu verwenden .. mit VNC, wenn ich nicht schlecht bin, bringen Sie den gesamten Desktop ..

        @Luis, was Sie tun, geschieht einfach durch Hinzufügen des Parameters "-X" zum ssh (Sie müssen die X-Weiterleitung auf Ihrem Server zulassen).

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

      2.    Unser Team sagte

        @ x11tete11x
        In Anbetracht dessen, was Luis erwähnte, dachte ich daran, ihm eine andere Alternative anzubieten, da:

        1. "Besonders nützlich auf Computern mit wenigen Ressourcen ..."

        -Im Fall einer einzelnen Anwendung werden möglicherweise nicht so viele Ressourcen verbraucht, aber der Versuch, 10 Fenster mit x-Weiterleitung zu öffnen, macht das System weiterhin härter als eine einzelne VNC-Instanz, da VNC nicht "den gesamten Desktop" bringt.
        -Wenn Sie das Programm auf dem Client schließen, wird es auf dem Server gleich angezeigt (jemand korrigiert mich, wenn ich falsch liege). Mit VNC können Sie beispielsweise die ganze Nacht einen Torrent herunterladen und sich erneut im anmelden Morgen und alles würde so weitergehen, wie ich gegangen war.
        -VNC ist ein systemunabhängiges Protokoll, auf das Sie von einem Client unter Win, Andorid, Mac OSX usw. aus zugreifen können. und verwenden Sie Ihre GNU / Linux-Programme, ohne etwas anderes als den VNC-Client selbst installieren zu müssen.

        Und 2. «... leider kontrolliere ich das Problem nicht und weiß nicht, wie ich die Computer dafür konfigurieren soll.»

        Es ist viel einfacher (und ohne Risiko, etwas falsch einzugeben und ohne Desktop neu zu starten), VNC zu installieren und den SSH-Tunnel zu konfigurieren (dies geschieht mit der GUI), als die X-Konfigurationsdateien zu verschieben.

      3.    Luis sagte

        Vielen Dank für Ihre Kommentare.

        Ich habe SSH zusammen mit SHFS für eine lange Zeit verwendet, um auf Remote-Inhalte meines kleinen Servers zuzugreifen, aber ich war nie in der Lage, Remote-Anwendungen in einer grafischen Umgebung auszuführen.

        Ich werde beide Optionen ausprobieren, um zu sehen, wie es funktioniert. Was ich zuerst gesagt habe, scheint einfacher zu sein, da Sie laut x11tete11x nur einen Parameter hinzufügen müssen.

        Dann werde ich sehen, ob ich einen einfachen Weg finden kann, um VNC zu konfigurieren, da ich ein bisschen groß bin. Ich bin ein Arch-Benutzer, also wird es sicher Informationen im Wiki geben. Eine andere Sache ist für mich, es herauszufinden. Hehehe

        Ein Gruß.

    2.    adr14n sagte

      Dies kann durch Übergeben des Parameters -X an die Sitzung erfolgen, aber Sie müssen Ihren X-Server so konfiguriert haben, dass er Verbindungen von einem Computer im Netzwerk akzeptiert. Ich denke, das ist mit dem Dienstprogramm xhost konfiguriert. Wie der Stab erwähnt, ist VNC auch eine sehr gute Option

    3.    mario sagte

      Es ist X11-Weiterleitung, hier auf derselben Seite gibt es einen Beitrag dazu:
      https://blog.desdelinux.net/x11-forwarding-a-traves-de-ssh/

    4.    Luis sagte

      Danke für die Info Freunde.

      Ich sagte, ich mache es mit beiden Optionen, um zu sehen, welche besser zu mir passt.

      Viele Grüße!