# 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