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