Aller au contenu

Accès distant SSH

Description

Le CPHT fourni un accès distant SSH à ses ressources informatiques internes via un service de passerelle dénomée : pascal.cpht.polytechnique.fr.

Note

Le service SSH du CPHT est fourni par 2 serveurs pascal1.cpht.polytechnique.fr et pascal2.cpht.polytechnique.fr. Un système d'équilibrage de charge DNS round-robin permet de repartir les ressources entre ces deux serveurs.

Documentation

Pré-requis:

  1. Un compte dans l'annuaire XAJAM de l'école et un compte au CPHT
  2. Une paire de clés privée/publique ssh
  3. (Option) Activer l'authentification double-facteur

Note

Un workflow est disponible ici pour vous aider à comprendre le processus d'accès aux ressources informatiques du CPHT en SSH.

Vous avez une paire de clés SSH

Point d'entrée ou passerelle SSH au CPHT :

ssh.cpht.polytechnique.fr ou pascal.cpht.polytechnique.fr

$ ssh my_login(Q)ssh(P)cpht(P)polytechnique(P)fr

Accès SSH à des ressources derrière la passerelle SSH du CPHT en utilisant un rebond, pour accéder par exemples aux ressources privées comme les clusters cholesky, hopper, montblanc, hedin, les serveurs casimirX, etc.

graph LR You --> SSH-Gateway; SSH-Gateway --> ServerX;

Voici la commande qui permet de vous connecter (nécessite OpenSSH 7.3) :

$ ssh -J my_login(Q)ssh(P)cpht(P)polytechnique(P)fr my_login@machine_destination

Vous pouvez aussi créer un alias dans le fichier ~/.ssh/config :

Host alias_machine_destination
    User my_login
    HostName nom_machine_destination
    ProxyJump my_login(Q)ssh(P)cpht(P)polytechnique(P)fr

Puis ensuite vous connecter via cet alias :

$ ssh alias_machine_destination

Si votre client OpenSSH < 7.3 il est possible d'utiliser la directive ProxyCommand. Dans votre fichier ~/.ssh/config:

Host alias_machine_destination
    User my_login
    HostName nom_machine_destination
    ProxyCommand ssh -W %h:%p ssh.cpht.polytechnique.fr

Attention

L'ancienne syntaxe ProxyCommand nohup ssh pascal nc %h %p 2>&1 est obsolète et doit être mise à jour dans votre fichier ~/.ssh/config.

Vous n'avez pas de paire de clés SSH

  • Sous Linux ou MAC OS X

    1. Dans un terminal, vérifier sur votre poste que vous ne disposez pas d'une paire de clés :

      $ cd ~/.ssh
      $ ls
      authorized_keys2  id_rsa      known_hosts
      config            id_rsa.pub
      

      Rechercher une paire de fichiers comme id_rsa et id_rsa.pub (ou id_ed2559 et ed_ed2559.pub). Le fichier en .pub est la clé publique (qui peut être communiquée à quiconque) tandis que l'autre est la clé privée. Si vous ne voyez pas ces fichiers, il est nécessaire de les générer.

      Algorithme RSA

      Cela dépend de la taille de la clé. Une longeur de clé inférieur à 4096 bits est considéré maintenant comme faible. Pour cela, nous vous recommandons d'utiliser dorénavant l'algorithme ed2556.

      Algorithme Ed25519

      C'est l'algorithme à clé publique le plus recommandé aujourd'hui. La clé publique Ed25519 est compacte. Il ne contient que 68 caractères, contre RSA 3072 qui en compte 544.

    2. Dans un terminal ou une console, exécuter la commande suivante ssh-keygen avec l'algorithme ed2559:

      $ ssh-keygen -t ed25519
      
    3. La commande vous demande alors de sauvegarder la clé, puis une phrase secrête ou passphrase pour protéger le clé privée :

      Generating public/private ed25519 key pair.
      Enter file in which to save the key (/home/ubuntu/.ssh/id_ed25519): 
      Enter passphrase (empty for no passphrase):
      Enter same passphrase again:
      Your identification has been saved in /home/ubuntu/.ssh/id_ed25519
      Your public key has been saved in /home/ubuntu/.ssh/id_ed25519.pub
      
    4. Si vous êtes connecté à une station du CPHT copiez la clé publique id_ed2559.pub dans le fichier ~/.ssh/authorized_keys (ce fichier peur contenir à la suite plusieurs clés).

    5. Si vous n'êtes pas au CPHT ou connecté sur une machine du CPH, transmettre la clé publique id_ed2559.pub au support informatique. Le support informatique va alors copier le contenu de votre clé publique dans le fichier ~/.ssh/authorized_keys de votre repertoire home et ensuite vous confirmer que vous pouvez vous connecter à la passerelle.

  • Sous Windows (avec PuTTY)

    1. Télécharger et installez le client SSH PuTTY

    2. Exécuter l'outil PuTTYgen et sélectionnez ED2559 comme type de clé, puis cliquez sur Generate

      Générer une clé SSH avec PuTTY Key Generator

    3. Déplacer votre souris de manière aléatoire dans la zone située sous la barre de progression, comme indiquée ci-dessous

      Générer une clé SSH avec PuTTY Key Generator

    4. Une fois la barre de progression terminée, la fenêtre ci-dessous apparait et vous demande une phrase secrête ou Key passphrase qui permet de protéger la clé privée

      Générer une clé SSH avec PuTTY Key Generator

    5. Transmettre la clé publique qui se trouve dans le champ commençant par ssh-rsa... au support informatique) du laboratoire.

    6. Le support informatique va alors copier le contenu de votre clé publique dans le fichier ~/.ssh/authorized_keys de votre repertoire home et ensuite vous confirmer que vous pouvez vous connecter à la passerelle.

Activer l'authentification double-facteur ou à 2 étapes

Accès sans clés SSH

Cette méthode d'authentification en 2 étapes permet de vous connecter sans clé SSH depuis l'extérieur (internet) en utilisant votre mot de passe de votre compte de l'école et un code secret temporaire donnée via une application TOTP sur votre téléphone.

  1. Dans un terminal, ouvrir une session SSH sur la passerelle d'entrée du CPHT ssh.cpht.polytechnique.fr (nécessite une paire de clés SSH pour cette procédure)

  2. Lancer la commande :

    $ google-authenticator
    
  3. Google Authenticator vous génère un QR code

    Google Authenticator

  4. Sauvegarder (ex. capture d'écran) les codes d'urgence emergency scratch codes et la clé secrète secret key quelque part au cas ou vous perdez ou formattez votre téléphone

  5. Appuyer sur la touche "y" pour mettre à jour la configuration Google Authenticator dans votre répertoire personnel home

  6. Flasher le QR code avec par exemple l'application FreeOTP disponible pour iOS (iphone) et pour Android

    FreeOTP

  7. Se déconnecter de la passerelle SSH

  8. Tester l'authentification double facteur. Pour cela éditer votre configuration SSH sur votre poste de travail en ajoutant une entrée dans le fichier ~/.ssh/.config afin de supprimer dans cas particulier l'usage de la clé SSH.

    Host ssh_otp
        Hostname ssh.cpht.polytechnique.fr
        Pubkeyauthentication no
    
  9. Se connecter en SSH sur la passerelle via l'alias déclaré ci-dessus ssh_otp, entrer votre identifiant et votre mot de passe de l'école puis le code de vérification donné par l'application FreeOTP de votre téléphone

    $ ssh my_login@ssh_otp
    ##############################################################
    #                                                            #
    #             Centre de Physique Theorique                   #
    #                                                            #
    ##############################################################
    #            !!! Acces autorise uniquement !!!               #
    #                                                            #
    # Deconnectez vous immediatement si vous n'etes pas autorise #
    #          toute action sera tracee et enregistree           #
    # -----------------------------------------------------------#
    #              !!! Authorized access only !!!                #
    #                                                            #
    #             Disconnect immediately otherwise               #
    #        All action will be monitored and recorded           #
    ##############################################################
    
    Password: 
    Password: 
    Verification code: 
    #################################################################################
    #     Vous etes connecte a une ressource administree par                        #
    #     la Cellule Informatique Commune CMLS / CPHT / CMAP                        #
    #    ----------------------------------------------------                       #
    #        bureau : 061004 et 1061060                                             #
    #         email : support(Q)cpht(P)polytechnique(P)fr                                 #
    # documentation : https://gitlab.labos.polytechnique.fr \                       #
    #                 /CPHT_documentation/documentation_utilisateurs/wikis/home     #
    #################################################################################