Secure shell
Un article de Wikipédia, l'encyclopédie libre.
7 | Application |
---|---|
6 | Présentation |
5 | Session |
4 | Transport |
3 | Réseau |
2 | Liaison de données |
1 | Physique |
Modèle OSI |
Secure Shell (SSH) est à la fois un programme informatique et un protocole de communication sécurisé. Le protocole de connexion impose un échange de clés de chiffrement en début de connexion. Par la suite toutes les trames sont chiffrées. Il devient donc impossible d'utiliser un sniffer pour voir ce que fait l'utilisateur. Le protocole SSH a été conçu avec l'objectif de remplacer les différents programmes rlogin, telnet et rsh.
Sommaire |
[modifier] Le protocole
Le protocole SSH existe en deux versions majeures : la version 1.0 et la version 2.0. La première version permet de se connecter à distance à un ordinateur afin d'obtenir un shell ou ligne de commande. Cette version souffrait néanmoins de problèmes de sécurité dans la vérification de l'intégrité des données envoyées ou reçues, la rendant vulnérable à des attaques actives. En outre, cette version implémentait un système de transmission de fichiers sommaires, et du port tunneling.
La version 2 qui était à l'état de draft jusqu'en janvier 2006 est déjà largement utilisée à travers le monde. Cette version est beaucoup plus sûre cryptographiquement, et possède en plus un protocole de transfert de fichiers complet.
Habituellement le protocole SSH utilise le port 22. Il est particulièrement utilisé pour ouvrir un shell (console) sur un ordinateur distant. Peu utilisé sur les stations Windows (avec PuTTY ou cygwin avec OpenSSH), SSH fait référence pour l'accès distant sur les stations Linux et Unix.
SSH peut également être utilisé pour recopier des ports TCP d'une machine UNIX vers une autre, créant ainsi un tunnel. Cette méthode est couramment utilisée afin de sécuriser une connexion qui ne l'est pas (par exemple le protocole email POP3) en la faisant transférer par le biais du tunnel crypté SSH.
Note : rien n'empêche de faire plusieurs sauts entre consoles SSH, c'est-à-dire ouvrir une console sur un serveur, puis, de là, en ouvrir une autre sur un autre serveur.
[modifier] Historique
La première version de SSH (SSH-1) a été conçue par Tatu Ylönen, à Espoo, en Finlande en 1995. Il a créé le premier programme utilisant ce protocole et a ensuite ouvert une société, SSH Communications Security pour exploiter cette innovation. Cette première version utilisait certains logiciels libres comme la bibliothèque Gnu libgmp, mais au fil du temps ces logiciels ont été remplacés par des logiciels propriétaires. SSH Communications Security a vendu sa licence SSH à F-Secure (anciennement connue sous le nom de Data Fellows).
La version suivante a été nommée SSH-2. le groupe de recherche de l'IETF « secsh » vient de finaliser le standard SSH-2, que l'on retrouve actuellement dans la plupart des implémentations. Cette version est compatible ascendante avec les implémentations du draft de SSH-2 qui étaient en version 1.99.
[modifier] SSH sans mot de passe
Une configuration un peu particulière de SSH ne nécessite pas l'utilisation de mot de passe ou de phrase secrète. Cela permet à un utilisateur ayant un compte sur 2 machines différentes de se connecter de l'une à l'autre facilement. Mais bien sûr, cela fragilise la sécurité mise en place. En effet, l'accès au compte source donne accès au compte cible. Voici les étapes de sa mise en place:
- Créer une clef publique et une clef privée sans phrase secrète et en utilisant les noms de fichiers par défaut sur le compte source:
ssh-keygen
- Ajouter la clef publique provenant du compte source à la liste des clefs autorisées à se connecter sur le compte cible:
cat id_rsa.pub >> ~/.ssh/authorized_keys
- Vérifier que le répertoire
~/.ssh
du compte cible ne soit modifiable que par l'utilisateur:chmod -R go-w ~/.ssh
Cette configuration profite aussi à SCP et à SFTP qui se connectent au même serveur que SSH. Dans le cas particulier de deux comptes sur 2 ordinateurs partageant le même répertoire HOME, cette configuration marchera pour une connexion sans mot de passe dans les deux sens.
[modifier] Recommandations
SSH V2 est définie par plusieurs recommandations:
- RFC 4251 : Architecture générale du protocole
- RFC 4252 : Protocole d'authentification (PKI, par mot de passe ou par machine)
- RFC 4253 : Protocole de transport sécurisé (Chiffrement, Signature numérique, intégrité)
- RFC 4254 : Protocole de connexion (Port Tunneling, Shell)
[modifier] Voir aussi
[modifier] Liens internes
- Protocole de communication.
- OpenSSH, le projet libre d'outils SSH.
- SSH file transfer protocol (soit SSH FTP) transfert de fichiers à travers SSH.
- Secure shell file system (soit SSHFS) partage de systèmes de fichiers à travers SSH.
- WinSCP - client SFTP graphique pour Windows.
- PuTTY - client SSH multi-OS.
[modifier] Liens externes
- (fr) OpenSSH le site officiel
- (fr) Tutoriel SSH / OpenSSH
- (fr) Labo-Linux: tutoriel SSH
- (fr) Connexion à distance sécurisée
- (fr) La commande SSH sous Linux : La page de manuel officielle de la commande SSH, en français.
- Ganymed SSH-2 for Java : Implémentation libre sous la forme d'une bibliothèque pour Java.
- libssh : Une autre implémentation libre sous la forme d'une bibliothèque.
- sshwindows : OpenSSH pour Windows
- SSHFS : Site du projet de partage de systèmes de fichiers à travers SSH.
|
|