# Privatebin et le partage de fichiers 2025-01-15T14:04:57Z De récentes mésaventures m'ont fait réaliser que je compte trop sur mon accès SSH à mon serveur. C'est notamment vrai lorsque je veux partager un fichier. Habituellement, j'ai un petit script qui uploade avec sftp le fichier à partager dans un dossier. ``` #!/bin/sh # put a file on a server using sftp. # It returns an url to the randomized file name # A pubkey authentication is preferred test $# -eq 1 || exit sshcred="user@domain.tld" url="https://si3t.ch/pub/tmp" outdir="/var/www/htdocs/si3t.ch/pub/tmp" # if file has extension case "${1}" in *.*) ext=".${1##*.}" ;; *) ext="" ;; esac #rdm="$(openssl rand 5 -hex)$(date +%s)" rdm="$(date +%s)" out="${rdm}${ext}" ( printf "put \"%s\" %s\n" "${1}" "${outdir}/${out}" printf "chmod 666 %s\n" "${outdir}/${out}" printf "quit" ) | sftp "${sshcred}" > /dev/null 2>&1 printf "%s\n" "${url}/${out}" | xclip -i -selection clipboard printf "%s\n" "${url}/${out}" exit 0 ``` Régulièrement, les fichiers qui sont trop vieux sont supprimés. J'ai pour cela une tâche cron qui s'en occupe: ``` @weekly find /var/www/htdocs/si3t.ch/pub/tmp/ -type f -mtime +8 -delete ``` Mais je ne peux utiliser cette méthode que si je dispose d'un ordinateur capable de faire du ssh, et à fortiori qui contient ma clé SSH. Me voilà donc en quête d'un outil à auto-héberger. Et là c'est la misère, à croire qu'il n'existe plus que docket et nodejs pour développer des trucs. Rendez-nous les petits CGI propres ou les bouts de PHP pas compliqués! Par hasard, je suis ensuite tombé sur le Privatebin de mon académie: => https://secret.ac-nantes.fr/ Je fais confiance à l'admin de mon serveur, je vais donc héberger Privatebin qui non seulement chiffre les données dans le navigateur (zero-knowledge pour le serveur) et permet de joindre des fichiers. Après un peu de configuration, j'ai un truc qui me plaît : * Pas de partages éternels * Durée de validité d'1 jour maxi * Upload de 100M maxi. C'est beaucoup! La configuration de httpd pour les curieux est tout bête: ``` # Privatebin # Interdit de lire les données pastées location "/tools/secret/data/*" { block } # seul le index.php est traîté par PHP location "/tools/secret/" { directory index index.php } location "/tools/secret/index.php" { fastcgi socket "/run/php-fpm.sock" } ``` Si vous en avez besoin, c'est par ici: => https://si3t.ch/tools/secret/ Je suis curieux de découvrir de nouveaux outils à héberger, si possible de type zero-knowledge. --- Une réaction? Envoyez votre commentaire par mail: => mailto:prx@si3t.ch?subject=Privatebin Ou rejoignez le salon XMPP: => xmpp:fremen@chat.si3t.ch?join fremen@chat.si3t.ch