SSH, plus qu'un shell sécurisé

SSH (SHell sécurisé) est un protocole qui nous aide à accéder en toute sécurité aux ordinateurs distants, essentiellement comme le fait Telnet, mais en utilisant des algorithmes de cryptage qui nous aident à garder notre connexion sécurisée, surtout si nous voulons accéder à des ordinateurs qui remplissent une fonction importante au sein d'un réseau.

Généralement, pour accéder nous devons fournir notre nom d'utilisateur et l'adresse de l'ordinateur, afin que le serveur SSH nous demande le mot de passe d'accès:

ssh usuario@equiporemoto

A partir du moment où le client initie la première connexion entre l'ordinateur distant et nous, les informations voyagent déjà en toute sécurité, empêchant quelqu'un d'obtenir nos identifiants d'accès audit ordinateur, cependant SSH est un protocole très adaptable qui nous offre de nombreuses possibilités.

SCP

Le premier est de pouvoir transférer des fichiers entre le client et l'ordinateur distant, sans avoir besoin de monter un serveur FTP ou NFS, simplement en utilisant SCP (Secure CoPy) que la plupart des serveurs SSH implémentent:

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

Tunnel SSH

Cette fonctionnalité est très utile, car elle nous permet d'envoyer et de recevoir des informations qui ne sont pas nécessairement des commandes shell entre le client et l'ordinateur distant, par exemple la navigation ordinaire. Si vous ne devinez pas ce que cela peut avoir, pensez à ce qui suit: vous devez accéder à une page, mais l'endroit où vous vous trouvez a un pare-feu implémenté qui bloque précisément cette page, par conséquent, nous pouvons faire du `` tunneling '' avec une télécommande ordinateur qui n'a pas lesdits verrous et parcourant ladite page via notre session SSH:

ssh -D 8888 usuario@equiporemoto

Une fois connecté, notre client SSH `` écoute '' sur le port 8888 en tant que serveur proxy, afin que nous puissions configurer notre navigateur et tout le trafic est transmis via la session SSH

Tunnel SSH

Un autre exemple qui me vient à l'esprit est lorsque, en raison d'une restriction géographique, nous ne pouvons pas accéder à un service Web d'où nous sommes, lors de la création du tunnel, ledit service Web détecte l'IP de notre serveur distant comme source, pas notre IP client. C'est quelque peu équivalent aux VPN (Virtual Private Network)

SSH inversé

Si, pour une raison quelconque, nous devons accéder à un ordinateur qui se trouve derrière un pare-feu et que cela ne nous permet pas de rediriger le trafic SSH vers celui-ci, nous pouvons faire un `` SSH inversé '', de telle sorte que cet ordinateur se connecte à un autre serveur SSH, auquel nous pouvons également nous connecter, afin d'accéder à l'équipement derrière le pare-feu. Un exemple qui me vient à l'esprit est lorsque nous voulons aider un ami qui n'a aucune idée de comment configurer une redirection sur son modem, mais que nous devons accéder à son ordinateur à distance:

Ami -> Modem -> Serveur SSH <- À propos de nous

Les étapes à suivre sont relativement très simples:

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

À propos de nous
ssh usuario@servidorssh
Une fois à l'intérieur du serveur SSH, nous pouvons nous connecter avec l'équipe de notre ami en utilisant
ssh amigo@localhost -p 9999

Comme vous pouvez le voir, toute la magie réside dans le paramètre -R, qui indique au serveur intermédiaire que sur le port 9999, l'ordinateur de notre ami écoute maintenant en tant que serveur.

Ce ne sont là que quelques possibilités que SSH nous offre, mais je vous invite à en expérimenter d'autres, par exemple; nous pouvons faire des scripts sans assistance en utilisant des clés RSA, rediriger des sessions X (mode graphique) vers notre environnement graphique, pour n'en citer que quelques-unes.


Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données: Miguel Ángel Gatón
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.

  1.   Astro dit

    Excellent article, j'ai hâte de rentrer chez moi et de commencer à les pratiquer.

    1.    adr14n dit

      Merci beaucoup! C'est en fait mon premier article de blog et c'est vraiment agréable de lire ces commentaires. À votre santé!

  2.   Pablo cardozo dit

    Hier encore, je posais une question sur ce sujet, et c'est la suivante.

    Existe-t-il un moyen de pouvoir scp un dossier entier mais en tenant compte de la date des fichiers? En d'autres termes, j'ai un dossier avec de nombreux fichiers que j'ai téléchargés il y a quelque temps, je suis intéressé à télécharger uniquement ce qui a été téléchargé dans ce dossier à partir d'une certaine date.

    Salutations et merci d'avance.

    1.    animé dit

      Vous pouvez le faire avec RSYNC sur SSH. 😉

      1.    giskard dit

        rsync est le couvercle du pot !!! 😀

      2.    Eduardo dit

        Je vous recommande d'essayer l'unisson, c'est SPECTACULAIRE, il est disponible dans les dépôts (au moins debian et ubuntu)

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

        Je l'utilise pour faire des sauvegardes quotidiennes de ma note sur un autre ordinateur, en plus d'avoir des répertoires synchronisés sur différents ordinateurs.

        C'est très simple à utiliser

        J'espère que cela vous sera utile!

        Exitos
        Eduardo

    2.    Gaucher dit

      Cela semble plus une tâche comme pour rsync, mais je ne sais pas s'il existe un paramètre pour le faire spécifiquement, sinon, cela devrait peut-être être géré à partir d'un script

    3.    adr14n dit

      Ce à quoi je peux penser, c'est de faire un ls trié par date, et de là copier ceux dont vous avez besoin avec un simple scp, car le scp n'a pas autant de fonctions qu'on le dit, il a rsync.

  3.   anonyme dit

    J'atteste que le reverse ssh est luxueux, je l'ai utilisé entre mon pc et un autre qui était à plus de 700Km et aucun problème.
    Merci pour ces articles, ils sont très précieux.

  4.   cesser dit

    Tellement salé! Haha je ne savais pas que ssh avait autant de possibilités, je veux déjà apprendre comment configurer un serveur ssh et expérimenter ses capacités, juste une chose, pouvez-vous expliquer ce que fait chaque paramètre?

    1.    adr14n dit

      Selon l'homme ssh lui-même, le -D sert à spécifier un «redirecteur d'application dynamique» localement, qui, comme je l'ai expliqué dans l'article, sert à faire passer le trafic à travers un tunnel dans la même session SSH. Le -R spécifie le port distant qui sera redirigé vers notre ordinateur local via un «transfert». Et enfin le -p spécifie à quel port le client doit se connecter, quand il n'utilise pas le port standard: 22

  5.   manuelmdn dit

    Bonne chose qui touche à ce sujet, j'ai une question sur les clés ssh, pouvez-vous générer plus d'une clé pour différents services? J'espère qu'ils ont publié un article sur la gestion des clés ssh, je sais que dans google il y a la réponse., Mais j'espère que vous en parlerez,

    Salutations!

    1.    adr14n dit

      Lorsque vous utilisez l'authentification via des clés SSL, vous pouvez exporter la même chose (celle de votre ordinateur) vers différents services et de la même manière, si votre ordinateur est le serveur, vous pouvez incorporer différentes clés de différents ordinateurs. Je ne sais pas si j'ai répondu à votre question, mais j'ai compris cela. À votre santé

  6.   Luis dit

    Je pense que je me souviens qu'il y avait un moyen via ssh qui nous permettait d'exécuter une application à distance et de la visualiser sur notre ordinateur comme s'il s'agissait d'une application locale.

    Par exemple, nous pourrions exécuter Firefox, nous le voyons et le contrôlons sur notre ordinateur local, mais le processus s'exécute sur l'ordinateur distant.

    Particulièrement utile sur les ordinateurs avec peu de ressources mais malheureusement je ne contrôle pas le problème et ne sais pas comment configurer les ordinateurs pour faire ça.

    Est-ce que quelqu'un sait quelque chose à ce sujet?

    1.    L'équipe dit

      Pour quelque chose comme ça, il serait pratique d'utiliser VNC et vous pouvez créer un tunnel avec SSH.

      1.    x11tête11x dit

        @Staff pour moi ce ne serait pas pratique d'utiliser VNC .. avec VNC si je ne suis pas mal vous apportez tout le bureau ..

        @Luis, ce que vous faites se fait en ajoutant simplement le paramètre "-X" au ssh (vous devez autoriser le transfert X sur votre serveur)

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

      2.    L'équipe dit

        @ x11tete11x
        Compte tenu de ce que Luis a mentionné, j'ai pensé lui proposer une autre alternative, puisque:

        1. "Particulièrement utile sur les ordinateurs avec peu de ressources ..."

        -Dans le cas d'une seule application, elle peut ne pas consommer autant de ressources, mais essayer d'ouvrir 10 fenêtres avec le transfert x continue de faire travailler le système plus dur que d'avoir une seule instance de VNC, car VNC ne "apporte pas tout le bureau"
        -Lors de la fermeture du programme sur le client, il se termine de la même manière sur le serveur (quelqu'un me corrige si je me trompe), tandis qu'avec VNC, vous pouvez, par exemple, laisser un téléchargement torrent toute la nuit et vous reconnecter le matin et tout continuerait comme je l'avais laissé.
        -VNC est un protocole indépendant du système, vous pouvez y accéder depuis un client sous Win, Andorid, Mac OSX, etc. et utilisez vos programmes GNU / Linux, sans avoir à installer autre chose que le client VNC lui-même.

        Et 2. «... malheureusement je ne contrôle pas le problème et je ne sais pas comment configurer les ordinateurs pour cela.

        Il est beaucoup plus facile (et sans risque de taper quelque chose de mal et de redémarrer sans bureau) d'installer VNC et de configurer le tunnel SSH (cela se fait avec GUI) que de déplacer les fichiers de configuration X.

      3.    Luis dit

        Merci à vous deux pour vos commentaires.

        J'utilise SSH avec SHFS pour accéder au contenu distant sur mon petit serveur depuis longtemps, mais je n'ai jamais été en mesure d'exécuter des applications distantes dans un environnement graphique.

        Je vais essayer les deux options pour voir comment cela fonctionne. Ce que je disais au début semble plus simple puisque selon x11tete11x, il suffit d'ajouter un paramètre.

        Ensuite, je verrai si je peux trouver un moyen simple de configurer VNC puisque je suis un peu à la main, je suis un utilisateur d'Arch donc sûrement il y aura des informations sur le wiki, une autre chose est à moi de le découvrir. Hehehe

        Salutations.

    2.    adr14n dit

      Cela peut être fait en passant le paramètre -X à la session, mais vous devez avoir votre serveur X configuré pour accepter les connexions d'un ordinateur sur le réseau, je pense que cela est configuré avec l'utilitaire xhost. Comme le mentionne le personnel, VNC est également une très bonne option

    3.    mario dit

      C'est le transfert X11, ici sur ce site il y a un article à ce sujet:
      https://blog.desdelinux.net/x11-forwarding-a-traves-de-ssh/

    4.    Luis dit

      Merci pour les amis info.

      J'ai dit, je vais le faire en utilisant les deux options pour voir laquelle me convient le mieux.

      Salutations!