• # Re: Ssh, sftp et sécurité php.

    Posté par . En réponse au journal Ssh, sftp et sécurité php.. Évalué à 3.

    SSH (secured SHell) a remplacé les désormais obsolètes telnet et ftp pour les communication entre machines. Non seulement il permet une meilleure sécurité (les échanges de données sont cryptés) mais il offre la possibilité de s'affranchir de la saisie de mot de passe. Je vais vous exposer la marche à suivre pour pouvoir vous connecter via SSH sans saisir de mot de passe... Cette fonctionnalité repose sur le principe des clefs publiques / clefs privées (que je n'exposerai pas ici). Supposons que la machine A est la machine source, c'est à dire la machine à partir de laquelle vous voulez vous connecter sur la machine B (la machine destination). Pour notre exemple la machine A est "alamaison" et la machine B "www.leserveur.com". Sur la machine source (A) Commencez par générer vos clefs (privée et publique) au moyen de l'utilitaire ssh-keygen : (sukria@alamaison:sukria)$ ssh-keygen -t rsa -b 1024 Generating RSA keys: ............oooooO..oooooO Key generation complete. Enter file in which to save the key (/home/sukria/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/sukria/.ssh/id_rsa. Your public key has been saved in /home/sukria/.ssh/id_rsa.pub. The key fingerprint is: 1024 56:48:8b:d2:db:6e:bf:40:1e:eb:36:ec:75:65:ee:68 sukria@alamaison N'entrez pas de passphrase lorsque l'utilitaire vous le demande. Votre clef publique est contenue à présent dans le fichier ~/.ssh/id_rsa.pub Il vous faut maintenant uploader cette clef sur le serveur destination (Machine B). Un scp fera l'affaire (entrez yes à la question que pose votre client ssh, ainsi le host B sera connu pour la machine A) scp .ssh/id_rsa.pub www.leserveur.com:~ The authenticity of host 'www.leserveur.com' can't be established. Key fingerprint is 1024 23:ff:23:da:98:7d:43:c2:a2:3a:e3:aa:ea:08:e0:16. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'www.leserveur.com' to the list of known hosts. sukria@www.leserveur.com's password: id_rsa.pub 100% |*****************************| 334 00:00 ETA Très bien, à présent, tout se joue du côté de la machine B... Sur la machine destination (B) La clef publique de la machine A doit être ici sous le nom id_rsa.pub" grâce au scp précédemment effectué. Le principe de SSH est de contenir un fichier qui liste toutes les clefs publique des hosts qui ont le droit de se connecter sans mot de passe ; ce fichier se nomme authorized_keys et doit être dans ~/.ssh Attention, il est impératif que l'utilisateur soit identique sur la machine A et la machine B (ici "sukria") Nous allons donc déplacer id_rsa.pub en .ssh/authorized_keys puisqu'il s'agit de la clef publique de A : mv ~/id_rsa.pub ~/.ssh/authorized_keys2 Voila, maintenant toute tentative de connexion partant de la machine A vers la machine B sera automatiquement acceptée pour l'utilisateur en question.