Outil en ligne de commande zerobinpaste¶
zerobinpaste est un simple outil CLI (similaire à pastebinit ou wgetpaste) à utiliser avec des fichiers ou des redirection shell dans le terminal ou des scripts simples.
Exemple de cas d’utilisation:
% zerobinpaste README.rst
http://some.0bin.site/paste/0cc3d8a8...
% grep error /var/log/syslog | zerobinpaste
http://some.0bin.site/paste/81fd1324...
% zerobinpaste docs/en/*.rst
easy_install.rst http://some.0bin.site/paste/9adc576a...
apache_install.rst http://some.0bin.site/paste/01408cbd...
options.rst http://some.0bin.site/paste/921b2768...
...
% ps axlf | zerobinpaste | mail -s "Process tree on $(date)" root
Les liens produits peuvent être ensuite copier-coller sur un channel IRC ou autre.
L’outil produit le chiffrement lui-même sur la machine et la clé (après le hash) n’est jamais envoyée au serveur ou nul par ailleurs excepté la sortie standard de l’outil (ex: le terminal).
L’outil doit être buildé avec node.js séparément (voir plus bas).
Usage¶
Au minimum il faut préciser le site pastebin (l’url principal d’où on posterait
dans le navigateur) doit être spécifié à l’outil via l’option -u (–url) (on peut
le simplifier avec un alias shell - ex: alias zp='zerobinpaste -u http://some.0bin.site
)
ou dans le fichier de configuration “~/.zerobinpasterc” (format json).
Le fichier de configuration le plus simple pourrait ressembler à celà:
{“url”: “http://some.0bin.site“}
Toute option (dans sa forme longue, ex: “url pour –url) utilisable en ligne de commande peut être spécifié ici.
Lancez l’outil avec -h ou –help pour voir la liste des paramètres supportés.
Build / Installation¶
En bref:
0bin% cd tools 0bin/tools% make ... 0bin/tools% cp zerobinpaste ~/bin # install to PATH
La commande “npm” (packagé and installé avec node.js) est requise pour télécharger les dépendances indispensables à la production de l’éxécutable.
Utilisez “make” dans le dossier “tools” pour produire une version non-minifié” de “zerobinpaste”.
La commande make ugly
peut être utilisé à la place de make
pour créer une version “minified”
(requière l’installation de uglifyjs, script produit environ 25% plus petit en taille).
Le script “zerobinpaste” ainsi produit seulement besoin de node.js (et la commande “node”) pour s’éxcuter et peut être placé n’importe où dans le PATH système (ex : “~/bin”, “/usr/local/bin”) afin d’être exécuté en tapant simplement “zerobinpaste”.
Pourquoi node.js et pas python¶
Malheureusement, il est assez difficile et peu fiable de répliquer un protocole chiffrement non trivial et non documenté tel que celui de certaines méthodes de SJCL, et la moindre erreur garantie de produire une paste illisible.
L’implémentation actuelle utilise le même code Javascript (via le moteur V8 de node.js) que le navigateur, du coup il est simple et robuste.
Il est prévu de supporter plus tard un schéma de chiffrement plus configurable, moins complexe et plus courant, permettant à des clients non-javascript de fonctioner également.
Voir le pull request concerné pour plus de détails.