Openssl

Résolu/Fermé
solubac Messages postés 7 Date d'inscription vendredi 6 février 2015 Statut Membre Dernière intervention 11 février 2015 - 6 févr. 2015 à 18:07
solubac Messages postés 7 Date d'inscription vendredi 6 février 2015 Statut Membre Dernière intervention 11 février 2015 - 11 févr. 2015 à 16:34
Bonjour à tous,

J'ai un soucis (surement très bête) avec openssl. J'ai voulu créer un fichier .sh pour exécuter un "openssl aes-256-ecb -in /truc/fichierACrypter -out /truc/fichierCrypter -k test". Mais c'est l'échec, autant quand je suis connecté sur le serveur par SSH cette ligne de commande fonctionne parfaitement, mais dans le fichier shell, je reçois toujours un message d'erreur, à savoir "openssl: aucun fichier ou répertoire de ce type".
Vous l'aurez compris, je ne suis pas hyper doué avec shell, je me demande s'il ne faut pas appeler un fichier en amont ou .... autre chose mais je sais pas quoi d'autre ^^.

Merci d'avance à quiconque pourra m'aider.

2 réponses

mamiemando Messages postés 33363 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 16 novembre 2024 7 801
Modifié par mamiemando le 9/02/2015 à 18:54
Bonjour,

Cause du problème (version courte) :

C'est sans doute que la commande openssl n'est pas installée sur ton système.

Cause du problème (version longue) :

Quand tu lances une commande shell, ce dernier recherche l'exécutable qui lui correspond. La manière dont ton shell "résout" une commande peut se voir avec la commande which (sous réserve que la commande en question ne soit ni un alias shell, ni une built-in shell (comme par exemple
cd
)). Dans notre cas !

(mando@velvet) (~) $ which openssl
/usr/bin/openssl


Comment le shell a découvert qu'openssl était là ? Grâce à une variable d'environnement, appelée PATH, qui indique ou chercher des exécutables dont le chemin absolu n'est pas précisé (c'est-à-dire quand on lance
openssl
au lieu de
/usr/bin/openssl
). Tu peux afficher le contenu de ton PATH avec la commande :

echo $PATH


Exemple :

(mando@velvet) (~) $ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games


Comment tester rapidement si une commande est installée ou non ? (version courte)

Généralement on utilise la commande
whereis
.

Comment tester rapidement si une commande est installée ou non ? (version longue)

La commande
whereis
notamment va examiner les répertoires traditionnellement énumérés dans le PATH. Si openssl a été installé proprement, on peut s'attendre à trouver l'exécutable correspondant dans l'un d'eux.
Exemple :

(mando@velvet) (~) $ whereis openssl
openssl: /usr/bin/openssl /usr/include/openssl /usr/share/man/man1/openssl.1ssl.gz


On voit ici que l'exécutable openssl est stockée dans /usr/bin, ce qui confirme bien le résultat que
which
nous avait retournée. L'avantage de
whereis
sur
which
, c'est qu'il peut examiner des répertoires qui ne sont pas forcément dans ton PATH. Ainsi, which permet surtout de comprendre comment une commande est résolue.

Prenons un exemple :
ifconfig
est traditionnellement stocké dans
/sbin
. Sous debian, ce répertoire n'est pas dans le PATH d'un profil utilisateur.

(mando@velvet) (~) $ which ifconfig

(mando@velvet) (~) $ whereis ifconfig
ifconfig: /sbin/ifconfig /usr/share/man/man8/ifconfig.8.gz

(mando@velvet) (~) $ ifconfig
bash: ifconfig : commande introuvable


On voit donc ici qu'il faudrait que "mando" lance
/sbin/ifconfig
(ou corrige son PATH pour y ajouter
/sbin
)

Comment résoudre le problème ? (version courte)

Il suffit d'installer openssl. Normalement un paquet permet de l'installer facilement. Souvent, un paquet porte le même nom que la commande qu'il met à disposition. On peut donc raisonnablement s'attendre à ce que le paquet à installer s'appelle
openssl
.

Comment résoudre le problème ? (version longue)

Nous allons voir comment retrouver le nom du paquet qui nous intéresse quand on ne connaît que le nom de la commande qui nous manque (ici openssl).

Ce qui suit est spécifique à debian et les distributions qui en dérivent (ubuntu, etc).

Sur une distribution debian, ou qui en dérive, on passera par apt (quitte à passer par une interface graphique qui pilote apt, telle que software-center sous ubuntu) :
http://doc.ubuntu-fr.org/software-center

Il faut au préalable déterminer le nom du paquet adéquat. En ligne de commande, l'outil ici le plus approprié sera
apt-file
, qu'il faudra au préalable installer via apt également. Une installation via apt se fait généralement via les commandes
aptitude
ou
apt-get
.

sudo apt-get update
sudo apt-get install apt-file
apt-file update


Faisons maintenant notre recherche. Traditionnellement un exécutable déployé via un paquet (comme ce sera le cas ici) s'installe dans
/bin
,
/sbin
,
/usr/bin
ou
/usr/sbin
, ce qui correspond aux chemins que l'on retrouve usuellement dans le PATH. (Notons les répertoires /usr/local/bin et /usr/local/sbin étant réservés aux installations manuelles).

Quel que soit le répertoire dans lequel openssl sera déployé, on sait que son chemin absolu contiendra "bin/openssl". C'est donc ce qu'on va chercher avec apt-file :

(mando@velvet) (~) $ apt-file search bin/openssl
openssl: /usr/bin/openssl
openssl-blacklist: /usr/bin/openssl-vulnkey


On retrouve donc ici que le paquet s'appelle bien openssl. Il ne reste plus qu'à l'installer, lui aussi via apt-get :

sudo apt-get install openssl


Bonne chance
2
Lordanonymous Messages postés 198 Date d'inscription jeudi 2 août 2012 Statut Membre Dernière intervention 21 mars 2019 142
9 févr. 2015 à 19:08
A vrai dire je n'avais même pas pensé à ça. Il y a de forte chance que vos manip résolvent sont problème. Bien joué.
0
solubac Messages postés 7 Date d'inscription vendredi 6 février 2015 Statut Membre Dernière intervention 11 février 2015
10 févr. 2015 à 09:34
Ah trop fort Mamiemando, en fait je l'avais bien installé mais je l'appelais mal, tes exemples m'ont beaucoup aidé. Un GRAND MERCI, sinon j'y serais encore. En plus ça a du te prendre du temps d'écrire tout ça, merci encore. T'es le meilleur (vile flatteur que je suis ^^).
0
mamiemando Messages postés 33363 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 16 novembre 2024 7 801
10 févr. 2015 à 13:29
Eh bien merci à tous les deux pour les compliments, c'est vrai que quand on prend le temps d'expliquer les choses, ça fait plaisir de voir que ce n'est pas vain et qu'on est lu avec attention :-)

Bonne continuation à tous les deux
0
solubac Messages postés 7 Date d'inscription vendredi 6 février 2015 Statut Membre Dernière intervention 11 février 2015
11 févr. 2015 à 16:34
C'est le minimum de tout lire quand quelqu'un répond. Si en plus ça aide, c'est super ^^.
Bonne continuation aussi.
0