Pour vous connecter aux machines de l'UFR d'informatique, vous avez besoin d'un login et d'un mot de passe qui vous sont distribués par l'administrateur en début d'année. Vous pouvez aussi vous connecter à certains serveurs, depuis les salles TD de l'UFR, ou depuis chez vous.
Seuls certains serveurs sont accessibles depuis l'extérieur. Vous pouvez les utiliser comme passerelles d'accès afin de “rebondir” vers d'autres machines de l'UFR. Il est interdit de se connecter depuis le campus vers une machine extérieure à l'université. Ceci est une restriction de sécurité de RENATER.
SSH est un protocoles permettant de se connecter à un ordinateur distant. A la différence d'autres protocoles non sécurisés comme Telnet ou rlogin qui véhiculent l'information en clair, SSH nécessite une authentification mutuelle du client et du serveur et les données sont chiffrées.
L'authentification se fait par mot de passe ou par clé publique.
SSH est présent nativement sous les systèmes Unix et MacOS. Sous Windows, il existe plusieurs utilitaires pour vous permettre de vous connecter en SSH (par ex : putty).
Vous devez utiliser le terminal :
$ ssh login@machine_distante
ou encore
$ ssh machine_distante -l login
L'option -X (ou sa variante moderne -Y) est très pratique. Elle permet d'activer le transfert X11 et donc de lancer des applications X11 à travers le tunnel SSH.
$ ssh -X login@machine_distante
La première fois que vous vous connectez à une machine, un message comme ci-dessous apparait :
The authenticity of host 'machine_distante (194.254.199.xx)' can't be established. RSA key fingerprint is 66:c7:c2:e5:2d:f5:5e:07:f6:95:d2:86:60:7c:ba:b8. Are you sure you want to continue connecting (yes/no)?
Il vérifie que c'est la bonne machine. répondez “yes”.
Warning: Permanently added 'machine_distante,194.254.199.xx' (RSA) to the list of known hosts.
SSH vient de rajouter l'identité de la machine distante à votre liste d’hôtes connus. Vous pouvez vérifier dans le fichier ~/.ssh/known_hosts que l'identité de la machine est bien présente.
$ cat known_hosts machine_distante,194.254.199.xx ssh-rsa AAAAB3NzarrrrrEAAAABIwAAAIEAujbhYY2pJVXylsYHzz zzzBHghQhcZD58sI3zFO0wFHwWf/sGrmy3lbGcLxxxxxW3r2OzMM58d00V9Jrzwyhkn3mEaKxgvj/m9WOtJBRUgr p+hosgdWfHd4JbiezraezrtAkveq0APngg+mopEbajFzyAZERTYjVAAW84CIE90=
Putty est un petit utilitaire qui permet de faire des connexions SSH sous Windows.
Téléchargez putty.exe à cette adresse : http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html. Il s'agit d'un exécutable, pas besoin d'installation. Placez le fichier à l'endroit qui vous convient et lancez le.
Nota : Il est possible d'enregistrer vos diverses sessions.
Au lieu de s'authentifier par mot de passe, les utilisateurs peuvent s'authentifier grâce à un couple de clefs privée/publique. C'est ce qu'on appelle la cryptographie asymétrique. Deux clés distinctes mais liées par un algorithme de chiffrement.
Cette méthode d'authentification est bien plus sure que celle par mot de passe.
C'est le cas sur le serveur “lulu” qui nécessite l'utilisation d'une clé publique pour vous connecter. Suivez les indications ci-dessous pour générer vos clés et les déployer sur votre compte. Voir également la page dédiée à ce serveur linux à l'UFR.
Attention aux permissions de votre homedir. Si “group” ou “other” ont les droits d'écriture (ce que vous ne devriez pas faire, pour des raisons évidentes de sécurité), alors sshd refusera toute connexion par clé publique. En effet, n'importe qui pourrait modifier .ssh/authorized_keys (voir ci-dessous), et se connecter sur votre compte en usurpant votre identité..
Sur votre machine, pour générer votre couple de clés, il suffit de taper dans un shell :
$ ssh-keygen
Lors de la génération de clés, SSH vous demande de rentrer une pass-phrase qui est le mot de passe qui va protéger la clef privée. Mémorisez bien cette pass-phrase car elle vous sera demandée à chaque fois que vous vous connecterez en utilisant cette méthode d'authentification.
Selon les machines, différents protocoles peuvent être utilisés pour générer ces clés. Il est recommandé d'utiliser le protocole “ed25519” qui est maintenant le standard sur les machines modernes, à la place du protocole historique “rsa”. Au besoin, on peut choisir son protocole via l'option -t de ssh-keygen, par exemple ssh-keygen -t ed25519. Attention aux noms des fichiers de clés obtenus : ~/.ssh/id_ed25519.pub pour la clé publique et ~/.ssh/id_ed25519 pour la clé privée, au lieu des anciens id_rsa.pub et id_rsa. La clef privée est stockée par défaut avec les permissions 600 (lisible uniquement par le propriétaire, c'est à dire vous) et la clef publique est stockée avec les permissions 644 (lisible par tout le monde… normal, elle est “publique”).
$ ssh-keygen -t ed25519 Generating public/private ed25519 key pair. Enter file in which to save the key (/Users/pietroni/.ssh/id_ed25519): [...] Enter passphrase (empty for no passphrase): Enter same passphrase again: [...] Your identification has been saved in /Users/pietroni/.ssh/id_ed25519. Your public key has been saved in /Users/pietroni/.ssh/id_ed25519.pub. The key fingerprint is: SHA256:2NA22BwYOlFO4G15jaQ3lX1mBH0wiGVWKcBzAt1nBn8 pietroni@local_machine.informatique.univ-paris-diderot.fr [...]
(L'affichage peut différer d'un système à l'autre)
Note : Si besoin, vous pouvez modifier votre pass-phrase avec l'option -p de ssh-keygen.
$ ssh-keygen -p Enter file in which the key is (/Users/pietroni/.ssh/id_ed25519): [...] Enter old passphrase: Key has comment '/Users/pietroni/.ssh/id_ed25519' Enter new passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved with the new passphrase.
Afin d'autoriser votre clé publique nouvellement générée, vous devez la copier sur votre compte de l'UFR. Pour accéder à votre compte de l'UFR, seul le serveur “nivose” est à la fois visible de partout et accepte une première connexion sans clé ssh. Si vous disposez de l'utilitaire ssh-copy-id, la commande suivante suffit pour tout mettre en place:
$ ssh-copy-id -i login@nivose.informatique.univ-paris-diderot.fr
Sinon, faire manuellement les deux étapes suivantes:
1. Copier votre clé publique dans votre compte de l'UFR, par exemple à la racine (Voir les détails de scp plus bas)
$ scp ~/.ssh/id_ed25519.pub login@nivose.informatique.univ-paris-diderot.fr:~/
2. Connectez vous sur nivose en ssh
$ ssh login@nivose.informatique.univ-paris-diderot.fr
et ajoutez votre clé publique à votre fichier ~/.ssh/authorized_keys:
$ cat ~/id_ed25519.pub >> ~/.ssh/authorized_keys
(cette commande concatène votre clé à la fin du fichier authorized_keys).
Vous pouvez désormais vous connecter à “lulu” en suivant les instructions de la page linux.
A faire
SCP permet de tranférer ou de récupérer un fichier ou un répertoire vers/à partir d'une autre machine. Pour les options de transfert, reportez vous au man de scp.
$ scp chemin_fichier login@machine_distance:chemin_destination
ou pour un répertoire
$ scp -r chemin_repertoire login@machine_distance:chemin_destination
Exemples
$ scp ~/fichier1.txt pietroni@nivose.informatique.univ-paris-diderot.fr:/tmp/
Copie fichier1.txt qui est dans mon home_dir vers la machine nivose, dans le répertoire /tmp.
$ scp fichier1 fichier2 fichier3 pietroni@194.254.199.73:
Copie les 3 fichiers vers le répertoire racine sur la machine 194.254.199.73.
$ scp fich* pietroni@194.254.199.73:
Vous pouvez utiliser des caractères de substitution.
$ scp fichier1.txt pietroni@machine_distante:~/fichier2.txt
copier fichier1.txt et le renomme en fichier2.txt sur la machine distante.
L'action inverse est également possible. Vous pouvez récupérer un fichier depuis une machine distante et le copier sur votre machine locale.
$ scp login@machine_distante:chemin_fichier_distant chemin_local_destination
ou pour un répertoire :
$ scp -r login@machine_distante:chemin_repertoire_distant chemin_local_destination
Exemple
$ scp pietroni@nivose.informatique.univ-paris-diderot.fr:~/fichier2.txt ~/Mes_Documents/
Récupère fichier2.txt situé sur la machine nivose dans mon home_dir, et le copier dans mon répertoire local Mes_Documents.
Un mécanisme appelé ssh-agent permet de ne pas rentrer la pass-phrase à chaque fois. Sur les systèmes proposant ce ssh-agent, commencer par taper dans un shell la commande ssh-add et saisir sa pass-phrase, qui est alors mémorisé jusqu'à la fin de la session.
A finir
Créer des alias afin de simplifier l'utilisation de ssh/scp.
A faire
A faire