Forum Linux.général SSH entre 3 machines

Posté par .
Tags :
1
11
oct.
2012

Bonjour à tous,

Je suis actuellement en thèse et j'ai donc besoin de faire des backups de mes données. J'utilise des machines de calculs qui sont connectées sur un réseau local. J'accède à ces machines depuis un pc connecté au réseau local et à internet (pc de bureau). Et ce que j'aimerais c'est effectuer un backup des données sur les machines de calculs sur un serveur perso.
Pour clarifier un peu tout ça, voici un petit schéma de mon réseau :

----------------------     Réseau local   -------------     internet    ------------------ 
| Machines de calcul |   <-------------   | PC bureau |    ---------->  | serveur perso  |
|        (1)         |        SSH         |    (2)    |        SSH      |       (3)      |
----------------------                    -------------                 ------------------
                                                ^                                |
                                                |________________________________|
                                                              SSH -R

Les connexions SSH fonctionnelles sont:
(2) --> (1)
(2) --> (3)

Je peux également accéder au PC de bureau depuis le serveur :
moi@(2)~ ssh -R 2222:localhost:22 (3)
moi@(3)~ ssh -p 2222 localhost

Pour l'instant j'effectue mes backup à la mano, c'est à dire que je transfère mes données de (1) vers (2) puis de (2) vers (3).

Y a-t-il un moyen de créer une connexion entre (1) et (3) en utilisant (2) comme proxy ? Sachant que sur (2) j'ai des droits admin mais je n'ai aucun accès au routeur.

Merci

  • # Redirection de port

    Posté par . Évalué à 2. Dernière modification le 11/10/12 à 11:46.

    En utilisant les tunnels :

    sur la machine de calcul, pour créer le tunnel : ssh -L 2222:serveur:22 bureau

    et pour se connecter de (1) vers (3):

    sur la machine de calcul: ssh -P 2222 localhost

    • [^] # Re: Redirection de port

      Posté par . Évalué à 1.

      Problème, si je peux me connecter en ssh depuis le pc de bureau jusqu'à la machine de calcul, l'inverse n'est pas possible directement:

      moi@(2)~ ssh (3)   -->  OK
      moi@(3)~ ssh (2)   --> connection timed out
      
      

      Je peux toujours faire un port forward:

      moi@(2)~ ssh -R 2222:localhost:22 (3)
      moi@(3)~ ssh -p 2222 localhost
      
      

      Du coup j'ai essayé en utilisant les tunnels et en modifiant un petit peu:

      # Connection à la machine de calcul en utilisant port forward
      moi@(2)~ ssh -R 2222:localhost:22 (3)  
      moi@(3)~ ssh -L 56240:localhost:22 (2)  --> Connection closed by remote host
      
      

      J'ai pris le port 56240 car il était ouvert, vu que je comprend pas grand chose en réseau, peut-être que mon erreur vient de là. Pour voir les port ouvert, j'ai utilisé:

      netstat -antu
      
      

      Merci

  • # rebond ssh

    Posté par (page perso) . Évalué à 5. Dernière modification le 11/10/12 à 12:36.

    Tu peux ajouter ces lignes dans le ~/.ssh/config de machine_de_calcul:

    Host serveur_perso
    user <login>
    ProxyCommand ssh pc_bureau2 "nc serveur_perso"
    
    

    Ensuite, il suffit de faire ssh serveur_perso depuis machine_de_calcul pour se connecter. Tu peux également faire un scp mon_fichier serveur_perso:./mon_repertoire_destination

    • [^] # Re: rebond ssh

      Posté par . Évalué à 2.

      oui, ca marche très bien le rebond-ssh. Par contre, je ne sais pas faire 2 bond. Je ne sais pas s'il y a une astuce.

    • [^] # Re: rebond ssh

      Posté par . Évalué à 1.

      Même commentaire que j'ai fait à sleibo. Je ne peux pas me connecter directement de la machine de calcul à mon pc de bureau.

      Du coup j'ai la même erreur:

      # Connection à la machine de calcul en utilisant port forward
      moi@(2)~ ssh -R 2222:localhost:22 (3)
      
      # modification du fichier de config
      moi@(3)~ cat .ssh/config
        Host serveur
        Hostname xx.xx.xx.xx
        User moi
        IdentityFile ~/.ssh/id_serveur
        ProxyCommand ssh localhost "nc serveur"
      
      # tentative de connexion entre machine de calcul et serveur
      moi@(3)~ ssh serveur
      usage: nc [-46DdhklnrStUuvzC] [-i interval] [-p source_port]
            [-s source_ip_address] [-T ToS] [-w timeout] [-X proxy_version]
            [-x proxy_address[:port]] [hostname] [port[s]]
      ssh_exchange_identification: Connection closed by remote host
      moi@(2)~ 
      
      

      Je vais me pencher sur la documentation de nc. Peut-être que je trouverais quelque chose là dedans

      • [^] # Re: rebond ssh

        Posté par (page perso) . Évalué à 1. Dernière modification le 11/10/12 à 17:57.

        Oups. J'ai eu un problème lors de mon copier-coller :)
        Il manque le 22 dans la commande proxy:

        Host serveur
        Hostname xx.xx.xx.xx
        User moi
        IdentityFile ~/.ssh/id_serveur
        ProxyCommand ssh localhost "nc serveur 22"
        
        
        • [^] # Re: rebond ssh

          Posté par . Évalué à 1.

          Oui j'ai vu la documentation après, j'ai essayé, mais toujours la même erreur:

          [moi@machine_calcul ~]$ ssh -vvv serveur
          OpenSSH_5.3p1, OpenSSL 1.0.0-fips 29 Mar 2010
          debug1: Reading configuration data /home/moi/.ssh/config
          debug1: Applying options for serveur
          debug1: Reading configuration data /etc/ssh/ssh_config
          debug1: Applying options for *
          debug2: ssh_connect: needpriv 0
          debug1: Executing proxy command: exec ssh moi@localhost "nc xx.xx.xx.xx 22"
          debug3: Not a RSA1 key file /home/moi/.ssh/id_serveur.
          debug1: permanently_drop_suid: 2023
          debug2: key_type_from_name: unknown key type '-----BEGIN'
          debug3: key_read: missing keytype
          debug3: key_read: missing whitespace
          debug3: key_read: missing whitespace
          debug3: key_read: missing whitespace
          debug3: key_read: missing whitespace
          debug3: key_read: missing whitespace
          debug3: key_read: missing whitespace
          debug3: key_read: missing whitespace
          debug3: key_read: missing whitespace
          debug3: key_read: missing whitespace
          debug3: key_read: missing whitespace
          debug3: key_read: missing whitespace
          debug3: key_read: missing whitespace
          debug3: key_read: missing whitespace
          debug3: key_read: missing whitespace
          debug3: key_read: missing whitespace
          debug3: key_read: missing whitespace
          debug3: key_read: missing whitespace
          debug3: key_read: missing whitespace
          debug3: key_read: missing whitespace
          debug3: key_read: missing whitespace
          debug3: key_read: missing whitespace
          debug3: key_read: missing whitespace
          debug3: key_read: missing whitespace
          debug3: key_read: missing whitespace
          debug3: key_read: missing whitespace
          debug2: key_type_from_name: unknown key type '-----END'
          debug3: key_read: missing keytype
          debug1: identity file /home/moi/.ssh/id_serveur type 1
          moi@localhost's password: 
          ssh_exchange_identification: Connection closed by remote host
          [moi@machine_calcul ~]$
          
          
  • # scp + unison ?

    Posté par (page perso) . Évalué à 1.

    Si tu a de telles contraintes, pourquoi ne pas simplement utiliser un outil type unison pour synchroniser automatiquement ton dossier de travail du ton PC de bureau sur ton serveur ?

    Tu recupere tes données depuis la ferme de calcul sur ton poste en scp et unison se chargera de les synchroniser sur ton serveur.

    Ou un outil de backup type BackupPC.

    • [^] # Re: scp + unison ?

      Posté par . Évalué à 0.

      Le problème c'est que le disque dur du pc de bureau (60Go) n'est pas assez gros pour contenir les données des machines de calculs (~500Go). Du coup soit je ne sauvegarde pas tout soit je sauvegarde en plusieurs fois, ce qui me fait perdre pas mal de temps.

      Avoir une sauvegarde sur mon serveur me permettrait d'assurer les données en 2 endroits physiques différents. Si je demande ça maintenant c'est que je vient d'avoir un problème sur une machine de calcul sur laquelle le DSI, qui vient d'arriver, à mis à jour la distribution linux et a confondu la partition /home avec une partition /data (/home et / n'était pas 2 partitions séparées). Bien sûr aucun backup. Du coup j'ai perdu une dizaine de Go de données. Rien d'irrécupérable mais si à l'avenir je pouvais faire moi-même le backup ça m'arrangerai.

      Bref l'idée était vraiment d'utiliser l'ordinateur du pc de bureau comme passerelle entre la machine de calcul et le serveur.

      Merci quand même

      • [^] # Re: scp + unison ?

        Posté par (page perso) . Évalué à 2.

        un solution serait peut-être de faire un partage de dossiers via nfs ou sshfs : tu montes le dossier à sauvegarder de la machine qui calcule, ainsi que le dossier de réception de la sauvegarde sur le serveur, vers ton PC de travail, et tu utilises ce dernier pour sauvegarder de 1 vers 3.

        « I approve of any development that makes it more difficult for governments and criminals to monopolize the use of force. » Eric Raymond

  • # Ou alors j'ai pas compris, ou alors ... scp -3

    Posté par . Évalué à 2. Dernière modification le 11/10/12 à 18:53.

    (1)$ scp -3 (1):/repertoire/fichiers (3):/repertoire

    l'option -3 est importante, sinon c'est équivalent à se connecter sur (1) et de (tenter) d'accéder à (3), ce qui ne marchera pas apparemment chez toi.

    Par contre, il n'y a pas de barre d'avancement…

  • # demande à ton administrateur

    Posté par . Évalué à 4.

    ca va paraitre idiot, mais si les données du calcul sont "vitales"
    ce n'est pas à toi d'en assurer le backup sur ta machine perso chez toi

    mais plutot à l'admin du systeme de te proposer un systeme de backup (sur un disque externe, sur un NAS, …)

    • [^] # Re: demande à ton administrateur

      Posté par . Évalué à 0.

      En fait, je travaille sur plusieurs machines de calculs sur lesquelles je crée des données. Nous avons un système de sauvegarde (en fait une partition /home0 monté sur toutes les machines de calculs) qui nous permet de stocker les données. Mais je vois 2 inconvénients à ce système :

      1) La machine où on stocke les données se trouve au même endroit que les machines de caluls, donc si un problème arrive dans la salle (incendie, inondation, …), toutes les données sont perdus
      2) Nous avons une limite de 200Go par utilisateur sur la partition /home0, ce qui est trop peu. Des discussions sont en cours pour augmenter le quota, mais là dessus j'ai pas trop mon mot à dire mais les données générées sont souvent supérieures à ce quota, du coup (et je ne suis pas le seul à le faire) on laisse les données sur les machines de calculs qui elles n'ont de limite que la taille du disque dur (~1To par machine)

      D'où l'idée d'avoir mon serveur perso chez moi où je pourrai faire des sauvegarde régulière en gardant toutes les données.

      • [^] # Re: demande à ton administrateur

        Posté par . Évalué à 2.

        1°) ca c'est un probleme recurrent pour tous les systemes, que ce passe-t-il si le local brule

        2°) j'ose imaginer que tes machines ne sont pas juste des tour avec 1 disque de 1To dedans mais plutot un ensemble de machine partageant un NAS ou faisant de la redondance de données sur le reseau, donc pas grand chose à craindre à part :
        - l'effacement par erreur
        - l'incendie total de l'etablissement

        et pour les sauvegardes sur ta machine perso, regarde dans ton contrat si tu as le droit de sortir les données du labo ou de l'entreprise,
        dans certains c'est formellement interdit voire carrement hors la loi.

        • [^] # Re: demande à ton administrateur

          Posté par . Évalué à 1.

          Effectivement, les machines sont reliées à un NAS (ou un autre système de stockage) qui est monté sur une partition /home0. Malheureusement, un quota est imposé sur cette partition (200Go), ce qui est insuffisant.

          Du coup les données qui prennent trop de place sont stockées sur les machines de calculs qui possèdent leur propre disque dur. Mais les données stockées sur ces disques n'ont pas de redondances et n'ont aucun backup (d'où la perte des données en cas de fausse manip).

          À la base, toutes les données doivent être stocker sur le NAS, les disques dur des machines de calculs ne servant que pour les fichiers temporaires. Ce n'est pas le cas vu la quantité de donnée à garder…

          Vis à vis du contrat, j'avoue que je n'y ai pas fait trop attention, je vais me renseigner. Mes supérieurs sont cependant au courant que je sauvegarde régulièrement en dehors du labo et je n'ai jamais eu de remarque.

  • # belier

    Posté par (page perso) . Évalué à 1.

    J'avais vu l'annonce il y a quelques temps sur linuxfr : https://linuxfr.org/news/b%C3%A9lier-11

    Depuis, le code est passé en version 1.2 : http://www.ohmytux.com/belier/

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.