Filesharing ueber SSH

Idee

Jeder hat einen Rechner der eigentlich 24h am Tag laeuft und irgendwie am Internet haengt. Es gibt einen Bereich auf dem Datentraeger, den man gerne freigeben bzw. teilen moechte. Ausserdem moechte man auch auf die Freigaben der Anderen zugreifen. Moeglichst sicher und ziemlich privat sollte es auch sein, ausserdem einfach zu pflegen.

Umsetzung

Es gibt eine zentrale Instanz, ein Rechner im Internet mit schneller Anbindung und am besten ohne Traffic-Beschraenkung - wir nennen ihn "Z". Es gibt Leute die Bock drauf haben, namentlich Alice, Bob und Carol (A,B und C).

Umsetzung beim Teilnehmer

A erstellt einen Benutzer 'freigabe', der auf die Freigabe lesend zugreifen kann und kopiert dessen oeffentlichen SSH-Schluessel auf Z:

sudo adduser freigabe
ssh freigabe@localhost
test -e $HOME/.ssh/id_rsa.pub || ssh-keygen -t rsa -b 2048     # passphrase muss leer sein!
ssh-copy-id -i $HOME/.ssh/id_rsa.pub '-p 22 freigabe@Z'        # oder per Mail an Z-Admin senden ("$HOME/.ssh/id_rsa.pub")
                                                               # oder einfach auf dieser Seite eintragen (unten)

Umsetzung auf dem Server

Der Admin auf Z traegt es bei "vertrauenswuerdigen Schluesseln" ein:

ssh freigabe@Z
cat >>$HOME/.ssh/authorized_keys <<EOF
${kopieren_und_einfuegen_des_schluessels_aus_dem_wiki}
>>EOF

Nun kann also A das Dateisystem von Z (alles was der Benutzer 'freigabe' sieht) bei sich transparent einhaengen:

OPTIONS="-o idmap=user -o uid=$(id -u) -o gid=$(id -g) -o ServerAliveInterval=15"
sshfs mediathek@141.54.160.24:freigabe/ -p 22 $OPTIONS $HOME/Desktop/freigabe_all/

Auf dem Server gibt es diese Struktur:

$HOME/freigabe/
$HOME/freigabe/alice/
$HOME/freigabe/bob/
$HOME/freigabe/carol/

Probleme

  • wie loest man am elegantesten, das der benutzer freigabe nur lesend auf die dateien zugreifen kann?
  • irgendwie waere es toll den eigentlich datenaustausch direkt zu machen, ohne über Z zu gehen

oeffentliche SSH-Schluessel

ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAp9Tzocu0z6UffKvmTJKfpwISkjKNeDTGGixcZMl35QT/FoIMKq3t+9l/J+uVKpyVhEHTaChoHWNBI+THH2s5yyWxLnNOt12csl0N7s55GyBh0r+Ykm9TzPJ2YNNw/cRglmC+XS9TcH7t0YLSRRW0zRmsCcXyBA3qJ51ENejGKBH+xk9XenE82jTFEHe1guY4/YXmFLTgKjUZYmqhkEIQIbX8XHwrlJwoHW4ByGC8MyaPbmmi2Jo/r5AxF37UhnWje0esL7a5n1bLwcOoCHHDSdA7WFVW9HBr5M4dRhecXWtzX52rMneCzlcIde2vhsWWCJ4WNxeUKmCrKqXgmUINxw== freigabe@basti