Taille: 1593
Commentaire: Nom cohérent avec le reste
|
← Version 48 à la date du 2020-06-28 08:10:13 ⇥
Taille: 7658
Commentaire: Gnome is good
|
Texte supprimé. | Texte ajouté. |
Ligne 1: | Ligne 1: |
#acl +All:read <<TableOfContents>> |
|
Ligne 2: | Ligne 6: |
SSH signifie Secure SHell. C'est un protocole qui permet de faire des connexions sécurisées (i.e. cryptées) entre un serveur et un client SSH. | SSH signifie Secure SHell. C'est un protocole qui permet d'établir une communication avec un serveur de manière sécurisée. |
Ligne 5: | Ligne 10: |
Il est inhabituel de voir un serveur SSH installé sur une machine équipé d'un système Windows. | {i} Le port TCP utilisé par défaut pour le SSH est le 22. |
Ligne 8: | Ligne 13: |
Vous pourrez ainsi accéder à votre compte mail au CRANS, si vous avez choisi de l'utiliser, ainsi qu'à l'endroit où vous pouvez stocker vos pages personnelles. En outre, vous avez sur ce compte CRANS un espace disponible de 300 Mo, pour stocker des fichiers légaux uniquement (vérifications régulières). Le serveur à utiliser est zamok.crans.org. | |
Ligne 10: | Ligne 14: |
Certains département de l'ENS proposent un compte à leurs élèves, vous pourrez y accéder en ssh (par exemple, pour les départements maths et info, le serveur est ssh.dptmaths.ens-cachan.fr). | * Vous pourrez ainsi accéder à votre [[VieCrans/GestionCompte|compte CRANS]]<<FootNote(le serveur est alors ssh.crans.org.)>> * Certains départements de l'ENS proposent un compte à leurs élèves, vous pourrez y accéder en ssh<<FootNote(par exemple, pour le département maths, le serveur est ssh.dptmaths.ens-cachan.fr, et pour le département GC, le serveur est ssh.dgc.ens-cachan.fr.)>>. * Vous pouvez aussi mettre un serveur SSH sur votre ordinateur afin de pouvoir y avoir un accès intégral depuis n'importe quel point de connexion à Internet. * Tout simplement parce que se connecter à une machine pour faire des choses à distance dessus, c'est cool. |
Ligne 12: | Ligne 19: |
Vous pouvez aussi mettre un serveur SSH sur votre ordinateur afin de pouvoir y avoir un accès intégral depuis n'importe quel point de connexion internet. | = Comment installer cet outil = |
Ligne 14: | Ligne 21: |
= Comment utiliser cet outil = Tout est expliqué ici : http://www.crans.org/docs/ssh.html. Et pour les windowsiens, il y a même un client graphique ultra-pratique avec une licence acquise par le CRANS que vous trouverez sur la page susmentionnée. |
== Sous Windows == |
Ligne 17: | Ligne 23: |
Si vous voulez un client libre, vous pouvez télécharger WinSCP : http://winscp.sourceforge.net/eng/download.php | La commande {{{ssh}}} est maintenant de base sur les dernières versions de Windows. Sinon utilisez [[https://www.putty.org/|PuTTY]] qui est un excellent client libre. Pour accéder aux fichiers, [[WikiInformatique/ConnexionScp|WinSCP]] permet d'intégrer la copie de fichier à travers SSH dans l'explorateur Windows. Pour avoir un serveur SSH, allez dans le panneau de gestion des fonctionnalités avancées de Windows et cochez « OpenSSH server ». La configuration de ce serveur est dans {{{%WINDIR%\System32\OpenSSH}}}. == Sous Linux et sous MacOS == Le client SSH est installé par défaut sous la plupart des versions de Linux. Sinon, pour les Linux Debian-based, vous pouvez l'installer avec : {{{ sudo apt install openssh-client }}} ~- Pour information, voilà où trouver des clients ssh, on pourra aussi aller voir avec profit la page du projet [[http://www.openssh.com/|OpenSSH]]. -~ = L'utiliser = Dans un ligne de commande ou terminal ({{{cmd.exe}}} sous Windows) : {{{ ssh login@zamok.crans.org }}} Vous devez ensuite fournir votre mot de passe. Oui, rien ne s'affiche, même pas des *, c'est pour que personne ne puisse voir ne serait-ce que le nombre de caractères de votre mot de passe. = Les clefs SSH = Une clef SSH permet de se connecter en SSH, à partir d'une machine donnée (ordinateur personnel), sur une machine sur laquelle on a un compte (par exemple, zamok) sans devoir pour cela taper systématiquement son mot de passe. == Générer la clef == Tout cela repose sur du chiffrement asymétrique. Vous avez chez vous la clé privée, que vous conservez jalousement secrète, et vous placez la clé publique sur chacune des machines auxquelles vous voulez pouvoir vous connecter. Pour générer la paire de clé, on utilise {{{ssh-keygen}}}. {{{ ssh-keygen }}} L'option {{{-t}}} permet de préciser le type de clé. Il existe également RSA, DSA et ECDSA. RSA est le type par défaut, ECDSA n'est pas supporté par toutes les versions de SSH. On vous demande ensuite où vous voulez stocker la clé privée, l'emplacement par défaut {{{/home/user/.ssh/id_rsa}}} est parfait, sauf si vous avec déjà une clé là et que vous en voulez une autre. On vous demande également une passphrase. Il est vivement conseillé d'en mettre une<<FootNote(Un cas typique où on ne met pas de passphrase est quand la clé est destinée à être utilisée par un script, qui ne sait pas taper un mot de passe.)>>, sinon toute personne mettant la main sur votre ordinateur aura accès à cette clé privée non protégée, et donc aux machines sur lesquelles vous aurez mis la clé publique (on peut modifier la passphrase avec {{{ssh-keygen -p}}}, habituellement une passphrase est sensiblement plus longue qu'un mot de passe). Cela crée un fichier {{{.pub}}} (clé publique que vous pouvez partager) et un fichier sans {{{.pub}}} (clé privée à défendre vaillamment). == Publier sa clé == La liste des clés autorisées à se connecter sur un compte distant est dans {{{~/.ssh/authorized_keys}}} sur le serveur distant. Donc le fichier {{{/home/userdistant/.ssh/authorized_keys}}} ressemble à ça : {{{ ssh-rsa AAAB3NzaC1yc2E[…]/5POqR5 vincent@cabal ssh-rsa AAAAB3NzaC1yc2EA[…]dww== a_mort_les_mdp }}} Le premier champ indique le type de clé, le deuxième est un beau blob en base64 de la clé publique, et le troisième champ est un commentaire. Vous pouvez mettre ce que vous voulez dedans, mais en général on met {{{user@host_de_provenance}}}, histoire de savoir pourquoi cette clé est là. Malheureusement, bien souvent on voit {{{/home/username/.ssh/id_rsa}}}, ce qui n'est pas très informatif parce que les clés SSH sont pratiquement toujours rangées là. Il existe une commande dédiée pour exporter votre clé SSH (à exécuter sur la machine '''depuis''' laquelle vous vous connectez) : {{{ ssh-copy-id -i ~/.ssh/id_rsa.pub login@machine.domain.tld }}} {{{-i}}} permet de spécifier quelle clé on veut exporter (utile si on en a plusieurs), mais si on l'omet, il ira chercher toutes les clés. (Et bien entendu, on vous demande votre mot de passe puisque la clé n'est pas encore exportée.) Cette commande n'existe pas sous Mac OS et Windows, donc vous devrez ajouter vous-même la ligne dans le fichier {{{authorized_keys}}}. Si c'est la premier fois que vous le faites, il vous faudra d'abord créer le dossier avant et donner les bons droits d'accès à ce petit monde, sinon SSH considérera que c'est trop risqué et les ignorera (à exécuter sur la machine '''cible''', le serveur, donc '''après''' vous être connectés (en fournissant votre mot de passe, donc)) : {{{ mkdir .ssh chmod 700 .ssh cd .ssh nano authorized_keys [coller la clé, sauvegarder (Ctrl+O), quitter nano (Ctrl+X)] chmod 600 authorized_keys }}} == Utiliser la clé == En admettant que vous n'ayez rien fait d'autre, si maintenant vous faites {{{ user@chezmoi$ ssh login@machine.domain.tld Enter passphrase for key '/home/user/.ssh/id_rsa': }}} Et vous de me dire "C'est nul ton truc, à la place de taper à chaque fois mon mot de passe, je tape à chaque fois ma passphrase, et en plus tu m'as dis qu'elle devait être plus longue !". Si vous vous arrêtez là, effectivement, c'est nul. L'intérêt est que la passphrase vous pouvez ne la taper qu'une fois, et la clé privée est déverrouillée pour un temps donné, voire jusqu'à ce que vous éteignez votre machine/fermiez votre session. Celui qui va mémoriser votre clé déverrouillée, on l'appelle l'agent SSH. Les environnements graphiques comme Gnome fournissent un agent SSH graphique. On peut l'activer et le désactiver en lançant {{{gnome-session-properties}}}. Maintenant, pour déverrouiller votre clé, tapez : {{{ ssh-add }}} puis votre passphrase. Et voilà, votre clé est déverouillée, et vous pouvez aller vous balader en ssh sans taper de mot de passe. L'option {{{-t}}} de cette commande vous permet de spécifier la durée (en secondes) au bout de laquelle la clé se reverrouillera. Si vous ne mettez rien, elle restera déverrouillée jusqu'à la mort de votre agent (normalement, la fermeture de la session/extinction de la machine). = Astuces = On peut en trouver plein sur la page ../AstucesSsh (allez au moins voir comment on se fait un {{{.ssh/config}}}). ---- CatégoriePagePublique |
Sommaire
Qu'est ce que le SSH
SSH signifie Secure SHell. C'est un protocole qui permet d'établir une communication avec un serveur de manière sécurisée. Par déformation, on parlera souvent de SSH comme un outil permettant de se connecter à un ordinateur distant possédant un serveur SSH et par la suite de travailler sur cette machine distante.
Le port TCP utilisé par défaut pour le SSH est le 22.
Pourquoi utiliser cet outil
Vous pourrez ainsi accéder à votre compte CRANS1
Certains départements de l'ENS proposent un compte à leurs élèves, vous pourrez y accéder en ssh2.
- Vous pouvez aussi mettre un serveur SSH sur votre ordinateur afin de pouvoir y avoir un accès intégral depuis n'importe quel point de connexion à Internet.
- Tout simplement parce que se connecter à une machine pour faire des choses à distance dessus, c'est cool.
Comment installer cet outil
Sous Windows
La commande ssh est maintenant de base sur les dernières versions de Windows. Sinon utilisez PuTTY qui est un excellent client libre.
Pour accéder aux fichiers, WinSCP permet d'intégrer la copie de fichier à travers SSH dans l'explorateur Windows.
Pour avoir un serveur SSH, allez dans le panneau de gestion des fonctionnalités avancées de Windows et cochez « OpenSSH server ». La configuration de ce serveur est dans %WINDIR%\System32\OpenSSH.
Sous Linux et sous MacOS
Le client SSH est installé par défaut sous la plupart des versions de Linux. Sinon, pour les Linux Debian-based, vous pouvez l'installer avec :
sudo apt install openssh-client
Pour information, voilà où trouver des clients ssh, on pourra aussi aller voir avec profit la page du projet OpenSSH.
L'utiliser
Dans un ligne de commande ou terminal (cmd.exe sous Windows) :
ssh login@zamok.crans.org
Vous devez ensuite fournir votre mot de passe.
Oui, rien ne s'affiche, même pas des *, c'est pour que personne ne puisse voir ne serait-ce que le nombre de caractères de votre mot de passe.
Les clefs SSH
Une clef SSH permet de se connecter en SSH, à partir d'une machine donnée (ordinateur personnel), sur une machine sur laquelle on a un compte (par exemple, zamok) sans devoir pour cela taper systématiquement son mot de passe.
Générer la clef
Tout cela repose sur du chiffrement asymétrique. Vous avez chez vous la clé privée, que vous conservez jalousement secrète, et vous placez la clé publique sur chacune des machines auxquelles vous voulez pouvoir vous connecter.
Pour générer la paire de clé, on utilise ssh-keygen.
ssh-keygen
L'option -t permet de préciser le type de clé. Il existe également RSA, DSA et ECDSA. RSA est le type par défaut, ECDSA n'est pas supporté par toutes les versions de SSH.
On vous demande ensuite où vous voulez stocker la clé privée, l'emplacement par défaut /home/user/.ssh/id_rsa est parfait, sauf si vous avec déjà une clé là et que vous en voulez une autre. On vous demande également une passphrase. Il est vivement conseillé d'en mettre une3, sinon toute personne mettant la main sur votre ordinateur aura accès à cette clé privée non protégée, et donc aux machines sur lesquelles vous aurez mis la clé publique (on peut modifier la passphrase avec ssh-keygen -p, habituellement une passphrase est sensiblement plus longue qu'un mot de passe).
Cela crée un fichier .pub (clé publique que vous pouvez partager) et un fichier sans .pub (clé privée à défendre vaillamment).
Publier sa clé
La liste des clés autorisées à se connecter sur un compte distant est dans ~/.ssh/authorized_keys sur le serveur distant.
Donc le fichier /home/userdistant/.ssh/authorized_keys ressemble à ça :
ssh-rsa AAAB3NzaC1yc2E[…]/5POqR5 vincent@cabal ssh-rsa AAAAB3NzaC1yc2EA[…]dww== a_mort_les_mdp
Le premier champ indique le type de clé, le deuxième est un beau blob en base64 de la clé publique, et le troisième champ est un commentaire. Vous pouvez mettre ce que vous voulez dedans, mais en général on met user@host_de_provenance, histoire de savoir pourquoi cette clé est là. Malheureusement, bien souvent on voit /home/username/.ssh/id_rsa, ce qui n'est pas très informatif parce que les clés SSH sont pratiquement toujours rangées là.
Il existe une commande dédiée pour exporter votre clé SSH (à exécuter sur la machine depuis laquelle vous vous connectez) :
ssh-copy-id -i ~/.ssh/id_rsa.pub login@machine.domain.tld
-i permet de spécifier quelle clé on veut exporter (utile si on en a plusieurs), mais si on l'omet, il ira chercher toutes les clés. (Et bien entendu, on vous demande votre mot de passe puisque la clé n'est pas encore exportée.)
Cette commande n'existe pas sous Mac OS et Windows, donc vous devrez ajouter vous-même la ligne dans le fichier authorized_keys. Si c'est la premier fois que vous le faites, il vous faudra d'abord créer le dossier avant et donner les bons droits d'accès à ce petit monde, sinon SSH considérera que c'est trop risqué et les ignorera (à exécuter sur la machine cible, le serveur, donc après vous être connectés (en fournissant votre mot de passe, donc)) :
mkdir .ssh chmod 700 .ssh cd .ssh nano authorized_keys [coller la clé, sauvegarder (Ctrl+O), quitter nano (Ctrl+X)] chmod 600 authorized_keys
Utiliser la clé
En admettant que vous n'ayez rien fait d'autre, si maintenant vous faites
user@chezmoi$ ssh login@machine.domain.tld Enter passphrase for key '/home/user/.ssh/id_rsa':
Et vous de me dire "C'est nul ton truc, à la place de taper à chaque fois mon mot de passe, je tape à chaque fois ma passphrase, et en plus tu m'as dis qu'elle devait être plus longue !". Si vous vous arrêtez là, effectivement, c'est nul.
L'intérêt est que la passphrase vous pouvez ne la taper qu'une fois, et la clé privée est déverrouillée pour un temps donné, voire jusqu'à ce que vous éteignez votre machine/fermiez votre session. Celui qui va mémoriser votre clé déverrouillée, on l'appelle l'agent SSH.
Les environnements graphiques comme Gnome fournissent un agent SSH graphique. On peut l'activer et le désactiver en lançant gnome-session-properties.
Maintenant, pour déverrouiller votre clé, tapez :
ssh-add
puis votre passphrase. Et voilà, votre clé est déverouillée, et vous pouvez aller vous balader en ssh sans taper de mot de passe. L'option -t de cette commande vous permet de spécifier la durée (en secondes) au bout de laquelle la clé se reverrouillera. Si vous ne mettez rien, elle restera déverrouillée jusqu'à la mort de votre agent (normalement, la fermeture de la session/extinction de la machine).
Astuces
On peut en trouver plein sur la page ../AstucesSsh (allez au moins voir comment on se fait un .ssh/config).
le serveur est alors ssh.crans.org. (1)
par exemple, pour le département maths, le serveur est ssh.dptmaths.ens-cachan.fr, et pour le département GC, le serveur est ssh.dgc.ens-cachan.fr. (2)
Un cas typique où on ne met pas de passphrase est quand la clé est destinée à être utilisée par un script, qui ne sait pas taper un mot de passe. (3)