Skip to content

SSH sous LINUX et MacOS X

Cette documentation est identique pour les deux distributions.
Il est inutile de créer de nouvelles clés si vous en possèder déjà.
(sauf si ces clés sont incompatibles avec le serveur SSH du laboratoire).

Installation et configuration de SSH

Sur les portables fournis par le laboratoire, tout est pré-installé et configuré. S'il y a eut un oubli de notre part (ça arrive, nous ne sommes que des humains), ramener votre portable au service informatique pour mise à niveau. Pour les portables MacOs X les packages sont installés par défaut.

Si vous souhaitez l'installer sur vos machines personnelles, voici les procédures à suivre (n'oubliez pas de faire ces manipulations en étant root)

  • Installer les packages Open SSH
  • Sous RedHat et CentOs
[root@localhost ~]$ yum install openssh openssh-server openssh-clients openssl-libs
  • Sous Debian (Ubuntu, LinuxMint, )
[root@localhost ~]$ apt install ssh openssh-server openssh-client ssh-askpass-gnome
  • Configurer les fichiers SSH (valable pour la plupart des distributions LINUX et MacOs X)
[root@localhost ~]$ cd /etc/ssh
[root@localhost ssh]$ ls -l  
total 604
-rw-r--r--  1 root root     581843  9 août   2019 moduli
-rw-r--r--. 1 root root        430  4 janv.  2019 ssh_config
-rw-------  1 root root        610 28 mai   16:05 sshd_config
-rw-r-----  1 root ssh_keys    227  4 janv.  2019 ssh_host_ecdsa_key
-rw-r--r--  1 root root        162  4 janv.  2019 ssh_host_ecdsa_key.pub
-rw-r-----  1 root ssh_keys    387  4 janv.  2019 ssh_host_ed25519_key
-rw-r--r--  1 root root         82  4 janv.  2019 ssh_host_ed25519_key.pub
-rw-r-----  1 root ssh_keys   1679  4 janv.  2019 ssh_host_rsa_key
-rw-r--r--  1 root root        382  4 janv.  2019 ssh_host_rsa_key.pub

Avant de configurer les fichiers ssh_config et sshd_config, sauvegardez les originaux (pour le cas où il faille revenir en arrière et pour avoir accès à la liste de toutes les options)

[root@localhost ssh]$ cp ssh_config ssh_config.ori
[root@localhost ssh]$ cp sshd_config sshd_config.ori  
[root@localhost ssh]$ ls -l  
total 612
-rw-r--r--  1 root root     581843  9 août   2019 moduli
-rw-r--r--. 1 root root        430  4 janv.  2019 ssh_config
-rw-r--r--  1 root root        430  2 juil. 18:50 ssh_config.ori
-rw-------  1 root root        610 28 mai   16:05 sshd_config
-rw-------  1 root root        610  2 juil. 18:50 sshd_config.ori
-rw-r-----  1 root ssh_keys    227  4 janv.  2019 ssh_host_ecdsa_key (...)  

Le fichier ssh_config

 #  SSH config LMD
 Host *
  ForwardAgent yes
  GSSAPIAuthentication yes
  StrictHostKeyChecking no
  HostbasedAuthentication no
  RhostsRSAAuthentication no
  ForwardX11 yes
  ForwardX11Trusted yes
 # Send locale-related environment variables
  SendEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
  SendEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
  SendEnv LC_IDENTIFICATION LC_ALL

Le fichier sshd_config

 #  SSHD config LMD
 Protocol 2
 ListenAddress 0.0.0.0
 KeyRegenerationInterval 30m
 SyslogFacility AUTHPRIV
 MaxAuthTries 5
 RhostsRSAAuthentication no
 PasswordAuthentication no
 ChallengeResponseAuthentication yes
 GSSAPIAuthentication yes
 GSSAPICleanupCredentials yes
 UsePAM yes
 X11Forwarding yes
 X11DisplayOffset 10
 Compression no
 AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
 AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
 AcceptEnv LC_IDENTIFICATION LC_ALL
 Banner /etc/issue.net
 Subsystem       sftp    /usr/libexec/openssh/sftp-server
 DenyGroups expired locked

En ce qui concerne la partie environnement, vous pouvez l'adapter selon vos envies.

Liens utiles
Fichier ssh_config
Fichier sshd_config

  • Redémarrer le service SSH
  • Sous LINUX
  [root@localhost ssh]$ systemctl restart sshd.service  
  • Sous MacOs X
  [login_user@localhost ssh]$ sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist

Créer les clés SSH

  • Ouvrir un terminal et entrer la commande suivante
[user@localhost ~]$ ssh-keygen -b 4096 -t rsa
!!! Pour information
L'option -b permet de choisir le niveau de sécurité de la clé (ici 4096 bits), et l'option -t permet de choisir le type de clé que l'on veut générer (ici une clé RSA compatible avec le serveur SSH du LMD).
  • On obtient le retour suivant
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa):  

La question posée est "où placer le fichier de clés ?" Laisser la réponse par défaut. Le programme va créer le dossier ".ssh" (s'il n'existe pas déjà) à la racine de votre home et y placer les fichiers clés.
Taper sur "Entrée".

  • Entrer la passephrase liée à votre nouvelle clé RSA une première fois
Created directory '/home/user/.ssh'.
Enter passphrase (empty for no passphrase):

Faites en sorte qu'elle soit suffisamment sécurisée (voir documentation sur la sécurité des mots de passe)

  • Entrer la passephrase liée à votre nouvelle clé RSA une seconde fois
Enter same passphrase again:
  • Vous obtenez le résultat suivant
 [user@localhost ~]$ ssh-keygen -b 4096 -t rsa
 Generating public/private rsa key pair.
 Enter file in which to save the key (/home/user/.ssh/id_rsa):
 Enter passphrase (empty for no passphrase): *******************
 Enter same passphrase again: *******************
 Your identification has been saved in /home/user/.ssh/id_rsa.
 Your public key has been saved in /home/user/.ssh/id_rsa.pub.
 The key fingerprint is:
 SHA256:tpdrIr1dW5uCKr6AvCu/GXdauBvOY4nqENGK+aGWoU0 user@localhost
 The key's randomart image is:
 +---[RSA 4096]----+
 |                 |
 | .               |
 |. .              |
 |.+               |
 |=.E     S        |
 |.Boo . . . .     |
 |+o*.=.o.. o.. .  |
 |+ .B+Bo oooo.o o |
 |o=*+*+o+o=o ..o  |
 +----[SHA256]-----+
  • Le dossier .ssh a été créé ainsi que la clé privée et la clé publique afférente
 [user@localhost:~]$ cd .ssh
 [user@localhost:~/.ssh]$ ls -l
 total 16
 drwx------  2 user user 4096 juil.  2 10:32 ./
 drwxr-xr-x 16 user user 4096 juil.  2 10:28 ../
 -rw-------  1 user user 3434 juil.  2 10:32 id_rsa
 -rw-r--r--  1 user user  739 juil.  2 10:32 id_rsa.pub
 !!! Notez bien les droits pour chaque clé. Ils sont très restrictifs pour la clé privée (lecture et écriture
 pour le propriétaire seul) et plus ouverts pour la clé publique afin que les serveurs SHH puissent lire
 cette clé d'authentification.

Lors de vos demandes d'accès aux serveurs, il vous sera demandé de fournir uniquement la clé publique sous cette forme:

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC55Ilh/mJOTZ5mj5U2umPLLy5OW++XQxvoKtlWYRp9yTHAOelgXJttCmkU1YX+L38dQ98rety51ZvsuhoWyn6BYck/xiY7DnnsGVQQb0Sdtog9kazkwuULUVYTuNd43PT1wzX/gjiVRp6pd+zFfe1piTv3Q+uPQWWBIAZGmiiQFNaKAPAO/5KfTo7mvxE3hCCjQ+Fy2sCaHZU2jB5mVLqx90G8YaqKPW6+g8jx4ivnxKd062OiB7Jp9WxsmE4OLabtDJvFSSrVBhyMUvP2gkmsRzzp6DjN6fLC7akQ/iBWkRixV18L5kXgp51a5mYoUxK/v2h2l0Gvfslf7e0qlP/V1gXT/kuTXtUSb0LuulwRLcDIVvGhqKLASyP3eaB1oxz2MAjiIoxeXK+RAZZqKzdvsZ8hW4KZD11vYRL3bmbMaK86k45SyzHf1SKWqC530v94xzy1A8ZLJ69+TP8OHpG9aVYLeYGEe6LchoM+/u31XGNupY+QS+4ZENaaQYml9LM3nJtQ8V+sf4857AWIj28Gh+TiojLplrKNi+iGZbTVlTAKM7HT7eeet6mLwKqCvgZdRyjOvimBIQ4uu/kgviYToYezONHrLBg90+7Z1ziIR6r8dgRXxCYE01uva2oQH7cD14YaOFYP3hvMyvxOTuSsEpRs34g7SxVPeuVths2lpw== user@localhost

Et de préférence envoyer le fichier id_rsa.pub (par exemple en cas de demande d'ouverture de compte sur le MESO-Centre IPSL).

  • Copier la clé publique sur le serveur du LMD pour accéder au réseau.
    Si vous n'êtes pas physiquement présent au laboratoire, vous pouvez envoyer votre fichier id_rsa.pub au service informatique (via svp@lmd.jussieu.fr) qui fera la manipulation pour vous.
    Si vous êtes physiquement au laboratoire, vous pouvez finaliser le procédé vous-même.
    Il vous suffira de vous connecter sur une machine du laboratoire, de copier votre clé publique dans votre dossier .ssh et de entrer la commande suivante
 [user@station_labo]:~/.ssh]$ cat id_rsa.pub >> authorized_keys  
 [user@station_labo]:~/.ssh]$ ls -al
 total 20
 drwx------  2 user lmdjus 4096 juil.  2 11:07 .
 drwxr-xr-x 16 user lmdjus 4096 juil.  2 10:28 ..
 -rw-r--r--  1 user lmdjus  739 juil.  2 11:07 authorized_keys
 -rw-------  1 user lmdjus 3434 juil.  2 10:32 id_rsa
 -rw-r--r--  1 user lmdjus  739 juil.  2 10:32 id_rsa.pub

Si vous souhaitez accéder au réseau du LMD (ou au MESO-Centre IPSL) depuis un autre ordinateur que votre portable (une station fixe personnelle par exemple), il vous suffit de copier le dossier .ssh à la racine de votre home. Attention penser à bien vérifier les droits des fichiers après copie ainsi que les droits d'accès au dossier lui-même (-rwx------), c'est à dire uniquement accessible par le propriétaire du dossier.

(voir la documentation "Gestion des Droits sous LINUX).

Se connecter au réseau du LMD

Le serveur SSH d'entrée sur le réseau du laboratoire s'appelle ssh-in.lmd.jussieu.fr. Pour vous connecter, ouvrir un terminal et entrer la commande suivante

[user@localhost:~]$ ssh -t -XY login_user@ssh-in.lmd.jussieu.fr  

Les options:
-t : force l'allocation de pseudo-tty (très pratique lorsque vous devez exécuter des applications basées sur des écrans distants sur le serveur distant, en établissant quelque chose comme une connexion ssh «temporaire», qui sera établie pendant que la commande est en cours d'exécution, et elle est fermée dès que la commande est terminée).
-X : Active le transfert X11
-Y : Active le transfert X11 de confiance
Ces 2 options servent à forcer le transfert d'affichage graphique si vos fichiers de configuration ssh n'ont pas été modifiés.

Vous pouvez consulter l'ensemble des options disponibles ici

Vous pouvez aussi créer un tunnel SSH si vous avez juste besoin de "rebondir" sur le réseau du LMD pour vous connecter à un serveur extérieur.
Par exemple:

[user@localhost:~]$ ssh -t -XY login_user@ssh-in.lmd.jussieu.fr ssh -t ssh-out ssh login_user@occigen.cines.fr

En cas de problème de connexion en ssh sur un ordinateur du LMD, n'hésitez pas à envoyer le résultat de l'échec en mode very verbose

ssh -vv userAccount@machineLMD.lmd.jussieu.fr

à svp@lmd.ipsl.fr

Vous trouverez un petit cours de l'IPSL sur ssh ici

Pour cliclad suivez ce lien

Pour l'ENS c'est ici