OpenSSH
OpenSSH (OpenBSD Secure Shell) est un ensemble d'outils informatiques libres permettant des communications sécurisées sur un réseau informatique en utilisant le protocole SSH.
Développé par | Projet OpenBSD |
---|---|
Première version | |
Dernière version | 9.9 ()[1] |
Dépôt | anongit.mindrot.org/openssh.git |
État du projet | Actif |
Écrit en | C |
Système d'exploitation | MacOS, Microsoft Windows, type Unix, Android et Windows Server 2019 |
Environnement | Multi-plateforme |
Type | Accès distant au Shell (SSH) et transfert de fichiers sécurisés |
Licence | Licence BSD Modifiée |
Site web | www.openssh.org |
Historique
modifierCréé comme alternative open source à la suite logicielle proposée par la société SSH Communications Security, OpenSSH est développé depuis 1999 par l'équipe d'OpenBSD, dirigée par son fondateur, Theo de Raadt, et diffusé sous licence BSD.
Présentation technique
modifierOpenSSH est à la fois une brique logicielle du système OpenBSD[2] et l'implémentation SSH la plus utilisée sur les systèmes BSD et GNU/Linux. L'équipe du projet OpenSSH maintient une version de base, propre à OpenBSD et une version multi-plateforme sous l'appellation Portable OpenSSH[3] à destination des systèmes compatibles (autres BSD, systèmes GNU/Linux...). Les versions multi-plateforme sont estampillées d'un p comme portable : par exemple OpenSSH 5.0p1.
La suite logicielle OpenSSH inclut les outils suivants :
ssh utilisateur@exemple.com
- scp, un remplaçant pour le client rcp :
scp utilisateur@exemple.com:~/utilisateur .
- sftp, un remplaçant pour le client ftp :
sftp utilisateur@exemple.com
- sshd, le daemon SSH :
sshd
- sftp-server, le daemon remplaçant le serveur FTP. sftp-server est un sous-système lancé par sshd quand celui-ci reçoit une demande de connexion d'un client sftp.
sftp-server
- ssh-keygen (en), programme de génération, gestion et conversion des clés RSA, DSA et DSA basées sur les courbes elliptiques. Par défaut, la clé privée générée par ssh-keygen est un fichier texte sans extension (dont l'utilisation peut être protégé par une phrase secrète) et la clé publique associée est un fichier texte d'extension .pub. Ces paires de clés servent soit à l'authentification des hôtes (attribut HostKey du serveur sshd) soit à l'authentification des utilisateurs (attribut IdentityFile du client ssh).
keygen -t ecdsa -b 384 -f .ssh/maclé -C commentaire
- ssh-agent, agent d'authentification.
- ssh-add, agent de gestion des clés privées de l'utilisateur. ssh-agent et ssh-add font office de trousseau de clés.
- ssh-keyscan, utilitaire de récupération et vérification des clés publiques d'hôtes distants.
- ssh-keysign, Agent d'authentification servant si l'option HostbasedAuthentication est activée sur le serveur (option désactivée par défaut).
- ssh-copy-id, utilitaire servant à déposer sa clé publique sur un serveur distant.
OpenSSH utilise la cryptographie asymétrique comme mécanisme d'authentification. À ce titre, OpenSSH gère les clés RSA, les clés DSA et les clés DSA basées sur les courbes elliptiques. OpenSSH reconnaît aussi les certificats X509 et les fichiers au format PKCS#12.
Le modèle de sécurité d'OpenSSH n'utilise pas d'IGC mais préfère la méthode du Trust on first use (en) ; avec cette méthode, chaque nouvelle connexion à un serveur SSH jusque là inconnu du client nécessite l'approbation de l'utilisateur. Si l'utilisateur accepte la clé publique que lui présente ce serveur SSH (soit sans vérification ce qui n'est pas souhaitable, soit après vérification de l'empreinte de la clé publique que l'utilisateur aura obtenu auparavant) le client ssh poursuivra les autres étapes de la connexion SSH pendant que l'utilitaire ssh-keyscan enregistrera la clé publique de l'hôte dans un fichier nommé known_hosts. Le fichier known_hosts conserve l'ensemble des clés publiques associées aux hôtes (serveurs SSH) qui ont été approuvées. Pour toute nouvelle connexion auprès d'un hôte (serveur SSH) connu, l'utilitaire ssh-keyscan va comparer l'empreinte de la clé publique que lui soumet le serveur avec celle qu'il a précédemment enregistrée dans le fichier known_hosts.
Vunérabilités
modifierLe 29 mars 2024, une grave Attaque de la chaîne logistique (en) de XZ Utils, visant par rebond le serveur OpenSSH a été détectée. Le code d'OpenSSH n'est pas directement en cause, c'est son association à liblzma via libsystemd qui ouvre la faille.
Notes et références
modifier- « release-9.9 » (consulté le )
- (en) OpenSSH 5.8 réalisé le 3 février 2011.
- (en) Portable OpenSSH 5.8p2 réalisé le 3 mai 2011.
Annexes
modifierArticles connexes
modifier- Secure Shell, le protocole sécurisé sous-jacent ;
- SSH File Transfer Protocol (soit SSH FTP), transfert de fichiers à travers SSH ;
- Sshfs, partage d'un système de fichiers de manière sécurisée en utilisant le protocole SSH ;
- Dropbear un client/serveur SSH léger et alternatif à OpenSSH ;
- FTPS client/serveur FTP sur TLS.
Liens externes
modifier- (en) Site officiel d'OpenSSH
- (en) OpenSSH for Windows
- (en) Portable releases
- (fr) Une introduction à OpenSSH : Introduction, explications pour l'installation, la configuration et quelques exemples d'applications d'OpenSSH.
- (en) Using OpenSSH with smartcards : Utilisation de cartes à puce pour sécuriser OpenSSH.
- (fr) Recommandations ANSSI pour OpenSSH : Note technique - Recommandations pour un usage sécurisé d’(Open)SSH.