Fortgeschrittene Nutzung
Reiter speichern
Wenn du die von dir gehosteten OnionShare-Tabs schließt, werden sie zerstört und können nicht wiederverwendet werden. Dauerhaft gehostete Websites sind unter derselben Adresse verfügbar, auch wenn der Computer, von dem aus sie freigegeben wurden, neu gestartet wird.
Mach jede Registerkarte dauerhaft, indem du das Kästchen „Diese Registerkarte immer öffnen, wenn OnionShare gestartet wird“ aktivierst, bevor du deinen Server startest.
Wenn du OnionShare öffnest, werden deine gespeicherten Tabs aus der vorherigen Sitzung geöffnet. Jeder Dienst kann dann manuell gestartet werden und ist unter der gleichen OnionShare-Adresse verfügbar und durch den gleichen privaten Schlüssel geschützt.
Wenn du eine Registerkarte speicherst, wird eine Kopie des geheimen Schlüssels des Onion-Dienstes auf deinem Computer gespeichert.
Privaten Schlüssel deaktivieren
Standardmäßig werden alle OnionShare-Dienste mit einem privaten Schlüssel gesichert. Dies wird im Tor-Kontext „Client-Authentifizierung“ genannt.
Wenn du einen OnionShare-Dienst lädst, wird der Tor-Browser dich auffordern, deinen privaten Schlüssel einzugeben. Wenn du der Öffentlichkeit erlauben willst, deinen Dienst zu nutzen, ist es besser, den privaten Schlüssel ganz zu deaktivieren.
Um den privaten Schlüssel für eine Registerkarte zu deaktivieren, setze ein Kreuz in das „Dies ist ein öffentlicher OnionShare-Service (Deaktiviert den privaten Schlüssel)“ Kästchen bevor du den Server startest. Dadurch wird der Server öffentlich Zugänglich, wodurch kein privater Schlüssel mehr benötigt wird.
Benutzerdefinierte Titel
Wenn jemand einen OnionShare-Dienst im Tor-Browser aufruft, sieht er standardmäßig den Standardtitel für den jeweiligen Service-Typ. Der Standard-Titel eines Chat-Dienstes ist beispielsweise „OnionShare Chat“.
Wenn du die Einstellung „Benutzerdefinierter Titel“ bearbeitest, bevor du einen Server startest, kannst du sie ändern.
Geplante Zeiten
OnionShare erlaubt eine genaue Zeitsteuerung, wann ein Dienst starten und stoppen soll. Bevor du den Dienst startest, klicke im jeweiligen Reiter auf „Erweiterte Einstellungen anzeigen“ und setze die Haken bei „Onion-Dienst zu einem festgelegten Zeitpunkt starten“, „Onion-Dienst zu einem festgelegten Zeitpunkt stoppen“ oder bei beiden, und lege das jeweilig gewünschte Datum samt Uhrzeit fest.
Bei Diensten, die in der Zukunft starten sollen, wird ein Countdown-Timer angezeigt, wenn die Schaltfläche „Freigabe starten“ angeklickt wird. Bei Diensten, die in der Zukunft gestoppt werden sollen, wird ein Countdown-Timer angezeigt, wenn sie gestartet werden.
Die Einstellung eines automatischen Starts (Datum und Uhrzeit) für einen OnionShare Dienst kann als eine Totmannschaltung verwendet werden. Das bedeutet dass der von Dir so eingestellte Dienst zu einem bestimmten Zeitpunkt in der Zukunft veröffentlich wird, wenn Du dies nicht zuvor änderst. Wenn Dir nichts passiert, kannst Du den Dienst stoppen bevor er beginnt zu starten, wenn Dir etwas passiert ist, startet der Dienst ohne Dein erneutes zutun.
Die automatische Beendigung eines OnionShare-Dienstes schränkt seine Sichtbarkeit ein. Wenn du geheime Informationen oder etwas, das veraltet ist, weitergeben willst, kannst du das für eine ausgewählte begrenzte Zeit tun.
Kommandozeilen-Schnittstelle
Zusätzlich zur grafischen Oberfläche verfügt OnionShare auch über eine Kommandozeilen-Schnittstelle.
Installation der Befehlszeilenversion
Wenn du das Snap-, macOS- oder Windows-Paket installiert hast, hast du bereits die CLI-Version installiert.
Alternativ kannst du auch nur die Kommandozeilenversion von OnionShare mit pip3:: installieren
pip3 install --user onionshare-cli
Beachte, dass du auch hierfür das tor-Paket installiert haben musst. Unter macOS kannst du dieses mit brew install tor installieren
Führe es dann wie folgt aus:
onionshare-cli --help
Informationen über die Installation auf verschiedenen Betriebssystem findest du in der Datei `CLI README<https://github.com/onionshare/onionshare/blob/develop/cli/README.md>`_ im Git-Repository.
Ausführen der CLI von Snap aus
Wenn du OnionShare mit dem Snap-Paket installiert hast, kannst du onionshare.cli ausführen, um auf die Kommandozeilenversion zuzugreifen.
Ausführen der CLI unter macOS
Vom Terminal aus kannst du /Applications/OnionShare.app/Contents/MacOS/onionshare-cli --help ausführen
Ausführen der CLI unter Windows
In der Windows-Installation ist die ausführbare Datei onionshare-cli.exe vorhanden.
Benutzung
Die Dokumentation zur Kommandozeile kann über den Befehl onionshare --help abgerufen werden:
$ onionshare-cli --help
╭───────────────────────────────────────────╮
│ * ▄▄█████▄▄ * │
│ ▄████▀▀▀████▄ * │
│ ▀▀█▀ ▀██▄ │
│ * ▄█▄ ▀██▄ │
│ ▄█████▄ ███ -+- │
│ ███ ▀█████▀ │
│ ▀██▄ ▀█▀ │
│ * ▀██▄ ▄█▄▄ * │
│ * ▀████▄▄▄████▀ │
│ ▀▀█████▀▀ │
│ -+- * │
│ ▄▀▄ ▄▀▀ █ │
│ █ █ ▀ ▀▄ █ │
│ █ █ █▀▄ █ ▄▀▄ █▀▄ ▀▄ █▀▄ ▄▀▄ █▄▀ ▄█▄ │
│ ▀▄▀ █ █ █ ▀▄▀ █ █ ▄▄▀ █ █ ▀▄█ █ ▀▄▄ │
│ │
│ v2.4.1 │
│ │
│ https://onionshare.org/ │
╰───────────────────────────────────────────╯
usage: onionshare-cli [-h] [--receive] [--website] [--chat] [--local-only] [--connect-timeout SECONDS] [--config FILENAME] [--persistent FILENAME] [--title TITLE] [--public]
[--auto-start-timer SECONDS] [--auto-stop-timer SECONDS] [--no-autostop-sharing] [--log-filenames] [--qr] [--data-dir data_dir] [--webhook-url webhook_url] [--disable-text]
[--disable-files] [--disable_csp] [--custom_csp custom_csp] [-v]
[filename ...]
positional arguments:
filename List of files or folders to share
optional arguments:
-h, --help Show this help message and exit
--receive Receive files
--website Publish website
--chat Start chat server
--local-only Don't use Tor (only for development)
--connect-timeout SECONDS
Give up connecting to Tor after a given amount of seconds (default: 120)
--config FILENAME Filename of custom global settings
--persistent FILENAME Filename of persistent session
--title TITLE Set a title
--public Don't use a private key
--auto-start-timer SECONDS
Start onion service at scheduled time (N seconds from now)
--auto-stop-timer SECONDS
Stop onion service at scheduled time (N seconds from now)
--no-autostop-sharing Share files: Continue sharing after files have been sent (the default is to stop sharing)
--log-filenames Log file download activity to stdout
--qr Display a QR code in the terminal for share links
--data-dir data_dir Receive files: Save files received to this directory
--webhook-url webhook_url
Receive files: URL to receive webhook notifications
--disable-text Receive files: Disable receiving text messages
--disable-files Receive files: Disable receiving files
--disable_csp Publish website: Disable the default Content Security Policy header (allows your website to use third-party resources)
--custom_csp custom_csp Publish website: Set a custom Content Security Policy header
-v, --verbose Log OnionShare errors to stdout, and web errors to disk
Ausführen der CLI als systemd-Unit-Datei
Es ist möglich, OnionShare automatisch von der CLI aus zu starten, indem eine systemd-Unit-Datei verwendet wird.
Dies ist besonders nützlich, wenn du im ‚persistenten‘ Modus arbeitest und bei jedem Start deines Rechners denselben Onion-Dienst starten möchtest.
Dazu musst du zunächst eine OnionShare json-Konfiguration vorbereiten.
Hier ist die Hauptkonfiguration von OnionShare. In diesem Beispiel ist sie in /home/user/.config/onionshare/onionshare.json gespeichert. Es kann sein, dass du einige der Einstellungen anpassen musst, aber wenn du OnionShare bereits installiert hast, sieht es wahrscheinlich schon ähnlich aus wie hier:
{
"version": "2.6.2",
"connection_type": "bundled",
"control_port_address": "127.0.0.1",
"control_port_port": 9051,
"socks_address": "127.0.0.1",
"socks_port": 9050,
"socket_file_path": "/var/run/tor/control",
"auth_type": "no_auth",
"auth_password": "",
"auto_connect": true,
"use_autoupdate": true,
"autoupdate_timestamp": null,
"bridges_enabled": false,
"bridges_type": "built-in",
"bridges_builtin_pt": "obfs4",
"bridges_moat": "",
"bridges_custom": "",
"bridges_builtin": {},
"persistent_tabs": [
"my-persistent-onion"
],
"locale": "en",
"theme": 0
}
Beachte den Abschnitt ‚persistent_tabs‘. Wir werden nun eine Datei unter /home/user/.config/onionshare/persistent/my-persistent-onion.json erstellen, die wie folgt aussieht:
{
"onion": {
"private_key": "UDIaZD8QgoXRP8JnAJ+pnlogQazfZ0wrfWJk5zPBGUBqg6+lozzjUJKTYWxwrxR33pDgJdTFtCUN1CX1FE22UQ==",
"client_auth_priv_key": "RHJSN4VI3NKGDSIWK45CCWTLYOJHA6DQQRQXUID3FXMAILYXWVUQ",
"client_auth_pub_key": "J4YLYAHS25UU3TZTE27H32RN3MCRGLR345U52XS2JNQ76CCHCRSQ"
},
"persistent": {
"mode": "share",
"enabled": true
},
"general": {
"title": null,
"public": false,
"autostart_timer": 0,
"autostop_timer": 0,
"service_id": "niktadkcp6z7rym3r5o3j2hnmis53mno5ughvur357xo7jkjvmqrchid",
"qr": false
},
"share": {
"autostop_sharing": true,
"filenames": [
"/home/user/my-shared-file.txt"
]
},
"receive": {
"data_dir": "/home/user/OnionShare",
"webhook_url": null,
"disable_text": false,
"disable_files": false
},
"website": {
"disable_csp": false,
"custom_csp": null,
"filenames": []
},
"chat": {}
}
Verwende diesen privaten Schlüssel, service_id oder client_auth Schlüssel nicht wirklich! Sie werden nur als Beispiel gezeigt. Gib den private_key niemals an andere weiter.
Der einfachste Weg, die Onion-Adresse und den privaten Schlüssel zu generieren, besteht darin, zunächst eine ‚angeheftete‘ OnionShare-Registerkarte in der Desktop-App zu erstellen und die Freigabe zum ersten Mal zu starten. Dadurch werden die dauerhaften Einstellungen in deinem Ordner .config/onionshare/persistent/ mit einem zufälligen Namen gespeichert. Du kannst diese Registerkarte wieder entfernen, wenn du sie das erste Mal erstellt hast. Du kannst sie aber auch dort lassen, wo sie ist, und die persistente Datei in deiner systemd-Unit-Datei unten verwenden.
Nun kannst du eine systemd unit Datei in /etc/systemd/system/onionshare-cli.service erstellen. Stelle sicher, dass du den Benutzer und die Gruppe an deinen eigenen Benutzer/deine eigene Gruppe anpasst, sowie Änderungen an allen Pfaden zum onionshare-cli-Binary oder den Pfaden zu deinen JSON-Konfigurationen und Freigaben.
Die systemd-Unit-Datei sollte wie folgt aussehen:
[Unit]
Description=OnionShare CLI
After=network.target
[Service]
ExecStart=/home/user/.local/bin/onionshare-cli --persistent /home/user/.config/onionshare/persistent/my-persistent-onion.json /home/user/my-shared-file.txt
Restart=on-failure
User=user
Group=user
[Install]
WantedBy=multi-user.target
Beachte, dass, obwohl /home/user/my-shared-file.txt im Abschnitt filenames der Datei my-persistent-onion.json definiert wurde, es trotzdem notwendig ist, es als Argument für den onionshare-cli Befehl anzugeben.
Stelle sicher, dass du sudo systemctl daemon-reload ausführst, nachdem du die Unit-Datei erstellt hast.
Nun kannst du sudo systemctl start onionshare-cli.service ausführen. Wenn du journalctl installiert hast, kannst du sudo journalctl -f -t onionshare-cli ausführen, und du solltest eine Ausgabe sehen, dass dein Dienst startet:
[...]
Feb 09 10:14:09 onionshare onionshare-cli[18852]: [6.5K blob data]
Feb 09 10:14:18 onionshare onionshare-cli[18852]: Compressing files.
Feb 09 10:14:18 onionshare onionshare-cli[18852]: Give this address and private key to the recipient:
Feb 09 10:14:18 onionshare onionshare-cli[18852]: http://niktadkcp6z7rym3r5o3j2hnmis53mno5ughvur357xo7jkjvmqrchid.onion
Feb 09 10:14:18 onionshare onionshare-cli[18852]: Private key: RHJSN4VI3NKGDSIWK45CCWTLYOJHA6DQQRQXUID3FXMAILYXWVUQ
Feb 09 10:14:18 onionshare onionshare-cli[18852]: Press Ctrl+C to stop the server
Wenn du nicht willst, dass deine Benutzer einen privaten Schlüssel benutzen, setze public auf true in den general Einstellungen der my-persistent-onion.json Datei.
Tastaturkurzbefehle
Die OnionShare-Desktop-Anwendung enthält einige Tastaturkurzbefehle, die der Bequemlichkeit und Zugänglichkeit dienen:
Ctrl T - New Tab
Ctrl X - Closes current tab
Und auf dem Hauptbildschirm für die Modusauswahl:
Ctrl S - Share mode
Ctrl R - Receive mode
Ctrl W - Website mode
Ctrl C - Chat mode
Ctrl H - Settings tab
Parameter in der Konfigurationsdatei
OnionShare speichert seine Einstellungen in einer JSON-Datei. Sowohl die CLI- als auch die Desktop-Version verwenden diese Konfigurationsdatei. In der CLI kannst du auch einen Pfad zu einer eigenen Konfigurationsdatei mit --config angeben.
Im Folgenden sind die Parameter der Konfigurationsdatei und ihre Bedeutung aufgeführt. Wenn deine Konfigurationsdatei andere Parameter enthält, die hier nicht aufgeführt sind, sind sie möglicherweise aus älteren OnionShare-Versionen veraltet.
Parameter |
Typ |
Erläuterung |
|---|---|---|
version |
|
Die Version von OnionShare. Du solltest diesen Wert niemals ändern müssen. |
connection_type |
|
Die Art und Weise, wie sich OnionShare mit Tor verbindet. Gültige Optionen sind ‚bundled‘, ‚automatic‘ (benutzt die Tor-Verbindung des Tor-Browsers), ‚control_port‘ oder ‚socket_file‘. Standard: ‚bundled‘ |
control_port_address |
|
Die IP-Adresse des Control-Ports von Tor, wenn |
control_port_port |
|
Die Portnummer des Control Ports von Tor, wenn |
socks_address |
|
Die IP-Adresse des SOCKS-Proxys von Tor, wenn |
socks_port |
|
Die Portnummer des SOCKS-Proxys von Tor, wenn |
socket_file_path |
|
Der Pfad zur Socket-Datei von Tor, wenn |
auth_type |
|
Wenn der Zugriff auf den Tor- Control-Port ein Passwort erfordert, kann dies auf ‚password‘ gesetzt werden, ansonsten auf ‚no_auth‘. Voreinstellung: ‚no_auth‘ |
auth_password |
|
Wenn der Zugriff auf den Tor- Control-Port ein Passwort erfordert und |
auto_connect |
|
Ob OnionShare sich automatisch mit Tor verbinden soll, wenn es startet. Voreinstellung: False |
use_autoupdate |
|
Ob OnionShare automatisch nach Updates suchen soll (über Tor). Diese Einstellung ist nur für MacOS- oder Windows-Installationen gültig. Voreinstellung: True. |
autoupdate_timestamp |
|
Das letzte Mal, dass OnionShare nach Updates gesucht hat. Default: None |
bridges_enabled |
|
Ob eine Verbindung zu Tor über Brücken hergestellt werden soll. Voreinstellung: False |
bridges_type |
|
Wenn |
bridges_builtin_pt |
|
Wenn |
bridges_moat |
|
Wenn |
bridges_custom |
|
Wenn |
bridges_builtin |
|
Wenn |
persistent_tabs |
|
Wenn der Benutzer Registerkarten als „gespeichert“ definiert hat (was bedeutet, dass sie bei jedem Start von OnionShare bestehen bleiben und sich ihre Onion-Adresse nicht ändert), erhalten diese eine zufällige Kennung, die hier aufgeführt wird. Die persistente Onion wird als JSON-Datei mit dem gleichen Namen wie diese Kennung in einem Unterordner des OnionShare-Konfigurationsordners namens ‚persistent‘ gespeichert. Standard: [] |
locale |
|
Das in OnionShare verwendete Gebietsschema (Locale). Voreinstellung: None (entspricht ‚en‘). Für gültige Gebietsschema-Codes siehe ‚available_locales‘ in https://github.com/onionshare/onionshare/blob/main/cli/onionshare_cli/settings.py |
theme |
|
Das Thema für die OnionShare-Desktop-Anwendung. Gültige Optionen sind 0 (automatische Erkennung des hellen oder dunklen Themas des Benutzercomputers), 1 (hell) oder 2 (dunkel). |
Parameter der Konfigurationsdatei für persistente Onions
Wie oben beschrieben, hat jede ‚persistente‘ Onion ihre eigenen Parameter, die in einer eigenen JSON-Datei gespeichert werden. Der Pfad zu dieser Datei kann für das CLI-Tool mit --persistent angegeben werden.
Hier ist ein Beispiel für eine persistente JSON-Konfiguration:
{
"onion": {
"private_key": "0HGxILDDwYhxAB2Zq8mM3Wu3MirBgK7Fw2/tVrTw1XraElH7MWbVn3lzKbcJEapVWz2TFjaoCAVN48hGqraiRg==",
"client_auth_priv_key": "UT55HDBA5VSRWOUERMGOHEIBKZCMOOGZAFFNI54GDQFZ6CMCUGIQ",
"client_auth_pub_key": "TPQCMCV26UEDMCWGZCWAWM4FOJSQKZZTVPC5TC3CAGMDWKV255OA"
},
"persistent": {
"mode": "share",
"enabled": true,
"autostart_on_launch": false
},
"general": {
"title": null,
"public": false,
"autostart_timer": false,
"autostop_timer": false,
"service_id": "hvsufvk2anyadehahfqiacy4wbrjt2atpnagk4itlkh4mdfsg6vhd5ad"
},
"share": {
"autostop_sharing": true,
"filenames": [
"/home/user/git/onionshare/desktop/org.onionshare.OnionShare.svg"
],
"log_filenames": false
},
"receive": {
"data_dir": "/home/user/OnionShare",
"webhook_url": null,
"disable_text": false,
"disable_files": false
},
"website": {
"disable_csp": false,
"custom_csp": null,
"log_filenames": false,
"filenames": []
},
"chat": {}
}
Im Folgenden sind die Parameter der Konfigurationsdatei für eine persistente Onion und ihre Bedeutung für jeden Abschnitt im JSON aufgeführt
onion
Parameter |
Typ |
Erläuterung |
|---|---|---|
private_key |
|
Base64-kodierter privater Schlüssel des Onion-Dienstes |
client_auth_priv_key |
|
Der private Schlüssel bei Verwendung der Client-Authentifizierung. Sende diesen an den Benutzer. |
client_auth_pub_key |
|
Der öffentliche Schlüssel bei Verwendung der Client-Authentifizierung. Wird auf der Seite von OnionShare verwendet. |
persistent
Parameter |
Typ |
Erläuterung |
|---|---|---|
mode |
|
Der von diesem persistenten Onion verwendete Modus. Die Optionen sind „Teilen“, „Empfangen“, „Website“ oder „Chat“. |
enabled |
|
Ob die Persistenz für dieses Onion aktiviert ist. Wenn die Option „persistent“ auf der Arbeitsoberfläche nicht aktiviert ist, wird die gesamte JSON-Datei gelöscht. Voreinstellung: true |
autostart_on_launch |
|
Ob dieses persistente Onion automatisch gestartet werden soll, wenn OnionShare startet und sobald Tor verbunden ist. Standard: false |
general
Parameter |
Typ |
Erläuterung |
|---|---|---|
title |
|
Ein optionaler benutzerdefinierter Titel, der auf dem Onion-Dienst angezeigt wird. Standard: null („OnionShare“ wird stattdessen angezeigt) |
public |
|
Ob auf den Onion-Dienst mit oder ohne privaten Schlüssel zugegriffen werden kann (Client-Authentifizierung). Wenn true, ist kein privater Schlüssel erforderlich. |
autostart_timer |
|
Ob der Onion-Dienst so konfiguriert ist, dass er zu einer bestimmten Zeit startet. Die Zeit kann in der Desktop-App gesetzt werden oder mit |
autostop_timer |
|
Ob der Onion-Dienst so konfiguriert ist, dass er zu einer bestimmten Zeit stoppt. Die Zeit kann in der Desktop-App gesetzt werden oder in Sekunden mit |
service_id |
|
Die 32-Zeichen-URL des Onion-Dienstes ohne das Schema und ohne die Endung ‚.onion‘. |
Die folgenden Einstellungen sind spezifisch für den ‚Modus‘, der im obigen Abschnitt persistent angegeben wurde.
receive
Parameter |
Typ |
Erläuterung |
|---|---|---|
data_dir |
|
Der Pfad, in dem die empfangenen Dateien oder Textnachrichten gespeichert werden. Standard: der Ordner ‚OnionShare‘ im Home-Verzeichnis des Benutzers. |
webhook_url |
|
Eine Webhook-URL, an die OnionShare POSTen wird, wenn es Dateien oder Textnachrichten empfängt. Standard: null |
disable_text |
|
Ob der Empfang von Textnachrichten deaktiviert werden soll. Standard: false |
disable_files |
|
Ob der Empfang von Dateien deaktiviert werden soll. Standard: false |
website
Parameter |
Typ |
Erläuterung |
|---|---|---|
disable_csp |
|
Wenn diese Option auf |
custom_csp |
|
Eine benutzerdefinierte Content-Security-Policy-Kopfzeile, die anstelle des Standards gesendet wird. |
log_filenames |
|
Ob URL-Anfragen nach stdout protokolliert werden sollen, wenn das CLI-Tool verwendet wird. Standard: false |
filenames |
|
Eine Liste von Dateien, die freigegeben werden sollen. Standard: [] |
chat
Derzeit gibt es keine konfigurierbaren Einstellungen für den Chat-Modus.