高度な使い方
タブを保存
OnionShare のタブを閉じると、タブは破棄され、これを再利用することはできません。固定タブでホストされているウェブサイトは、それをホストしているコンピューターが再起動した場合でも、同じアドレスでアクセスすることができます。
サーバーを開始する前に「OnionShare の起動時に常にこのタブを開く」にチェックを入れると、タブを固定することができます。
OnionShare を開くと、前回のセッションで保存したタブを開きます。その後、それぞれのサービスを手動で開始すると、同じ OnionShare のアドレスで、同一の秘密鍵で保護されたサービスが利用できるようになります。
タブを保存すると、その Onion Service の秘密鍵のコピーがあなたのコンピューター上に保存されます。
秘密鍵を無効にする
既定では、すべての OnionShare のサービスは、秘密鍵で保護されます。これは Tor では「クライアント認証」と呼ばれているものです。
OnionShare のサービスを読み込むと、Tor Browser は秘密鍵を入力するよう要求します。サービスを公開したい場合は、秘密鍵を完全に無効にすることをお勧めします。
タブに関して秘密鍵を無効にするには、サーバーを開始する前に「公開の OnionShare のサービスとして設定 (秘密鍵が無効となります) 」にチェックを入れてください。そうすると、サーバーは公開され、Tor Browser でこれを読み込む際に秘密鍵を入力する必要はなくなります。
カスタムタイトル
Tor Browser で OnionShare のサービスを読み込むと、それぞれの種類のサービスに既定のタイトルが表示されます。例えば、チャットのサービスの既定のタイトルは「OnionShare Chat」です。
サーバーを開始する前に「カスタムタイトル」を設定すると、既定のタイトルを変更できます。
スケジュールの設定
OnionShare では、サービスを開始・停止する時刻を予定することができます。サーバーを開始する前に、そのタブの「詳細設定を表示」をクリックし、「指定の日時に Onion Service を開始」と「指定の日時に Onion Service を停止」の片方または両方にチェックを入れて、希望日時を入力してください。
今後開始する予定のサービスは、「共有を開始」ボタンをクリックするとカウントダウンタイマーが表示されます。今後停止する予定のサービスは、開始時にカウントダウンタイマーが表示されます。
OnionShare の自動開始の設定は「死者のスイッチ」として使用できます。その場合、もし将来、あなたにより OnionShare の自動開始の設定が解除されなければ、指定の日時にサービスが公開されます。何もあなたの身に起こらなければ、サービスが開始する前に、これを中止することができます。
OnionShare のサービスの自動終了の設定は、サービスが公開される期間を限定できます。古くなってしまう秘密の情報などを共有したい場合は、期間を選択、限定してこれを共有することができます。
コマンドライン・インターフェース
グラフィカル・インターフェースに加えて、OnionShare にはコマンドライン・インターフェースがあります。
CLI バージョンのインストール
Snap、macOS、または Windows パッケージをインストールしている場合、CLI バージョンはすでにインストールされています。
あるいは、pip3 を使って OnionShare のコマンドライン版だけをインストールすることもできます。
pip3 install --user onionshare-cli
tor パッケージもインストールする必要があります。macOS の場合は brew install tor でインストールできます。
その後、次のコマンドを実行してください。
onionshare-cli --help
異なる OS でのインストールに関する情報については、Git リポジトリにあるコマンドライン README ファイルをご確認ください。
Snap からの CLI の実行
Snap パッケージを使用して OnionShare をインストールした場合は、 onionshare.cli を実行することで、コマンドラインインターフェイス版にアクセスできます。
macOS からの CLI の実行
ターミナルから /Applications/OnionShare.app/Contents/MacOS/onionshare-cli --help を実行します
Windows からの CLI の実行
Windows でのインストールでは、実行ファイル onionshare-cli.exe が利用できます。
使い方
コマンドラインのドキュメンテーションは onionshare --help で閲覧できます。
$ 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
systemd ユニットファイルとしての CLI の実行
systemd ユニットファイルを使用して、CLI から OnionShare を自動的に起動できます。
「永続」モードで動作していて、マシンを起動するたびに同じ Onion Service を起動したい場合には特に便利です。
これを行うには、最初にいくつかの OnionShare json 構成を準備する必要があります。
これが OnionShare のメイン設定です。この例では、/home/user/.config/onionshare/onionshare.json に保存されています。いくつかの設定を調整する必要があるかもしれませんが、すでに OnionShare がインストールされている場合は、おそらく以下のようになります。
{
"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
}
「persistent_tabs」セクションに注目します。以下のようなファイルを /home/user/.config/onionshare/persistent/my-persistent-onion.json に作成します。
{
"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": {}
}
この秘密鍵、service_id、client_auth 鍵を実際に使用しないでください!これらはあくまで例です。秘密鍵は絶対に誰とも共有しないでください
Onion アドレスと秘密鍵を生成する最も簡単な方法は、まずデスクトップアプリで OnionShare タブを「ピン留め」して、初めて共有を開始することです。これにより、永続的な設定が .config/onionshare/persistent/ フォルダーにランダムな名前で保存されます。最初に生成したタブは固定解除できます。あるいは、そのままにしておいて、以下の systemd ユニットファイルでその永続ファイルを使用することもできます。
これで、/etc/systemd/system/onionshare-cli.service に systemd ユニットファイルを作成できます。User と Group を自分のユーザー/グループに調整し、onionshare-cli バイナリへのパスや JSON 設定と共有へのパスも変更してください。
systemd ユニットファイルは以下のようになります。
[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
/home/user/my-shared-file.txt は my-persistent-onion.json ファイルの filenames セクションで定義されていますが、onionshare-cli コマンドの引数として指定する必要があります。
ユニットファイルを作成した後、必ず sudo systemctl daemon-reload を実行してください。
これで sudo systemctl start onionshare-cli.service を実行できます。journalctl がインストールされている場合は、sudo journalctl -f -t onionshare-cli を実行すると、以下のようにサービスの出力が表示されます。
[...]
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
ユーザーに秘密鍵を使わせたくない場合は、my-persistent-onion.json ファイルの general 設定で public を true に設定します。
キーボードのショートカット
OnionShare のデスクトップアプリケーションには、利便性とアクセシビリティーのために、いくつかのキーボードショートカットがあります。
Ctrl T - New Tab
Ctrl X - Closes current tab
メインモードの選択画面については、以下のショートカットがあります。
Ctrl S - Share mode
Ctrl R - Receive mode
Ctrl W - Website mode
Ctrl C - Chat mode
Ctrl H - Settings tab
設定ファイルのパラメーター
OnionShare は、その設定を JSON ファイルに保存します。CLI 版とデスクトップ版の両方で、この構成ファイルを使用します。CLI では、カスタム構成ファイルへのパスを --config で指定することもできます。
構成ファイルのパラメーターとその意味を以下に示します。ここに記載されていないパラメーターが構成ファイルに含まれている場合は、古い OnionShare バージョンでは使用されていない可能性があります。
パラメーター |
種類 |
説明 |
|---|---|---|
version |
|
OnionShare のバージョン。この値を変更する必要は一切ありません。 |
connection_type |
|
OnionShare が Tor に接続する方法。有効なオプションは 'bundled'、'automatic' (Tor Browser の Tor 接続を使う)、'control_port' または 'socket_file' です。デフォルト: 'bundled' |
control_port_address |
|
|
control_port_port |
|
|
socks_address |
|
|
socks_port |
|
|
socket_file_path |
|
|
auth_type |
|
Tor の制御ポートへのアクセスにパスワードが必要な場合は 'password'、そうでなければ 'no_auth' を設定します。デフォルト: 'no_auth' |
auth_password |
|
Tor の制御ポートへのアクセスにパスワードが必要で、 |
auto_connect |
|
OnionShare の起動時に Tor に自動的に接続するかどうか。デフォルト: False |
use_autoupdate |
|
OnionShare が (Tor 経由で) 更新を自動的に確認するかどうか。この設定は、MacOS または Windows インストールでのみ有効です。デフォルト: True |
autoupdate_timestamp |
|
OnionShare が最後に更新を確認した時刻。デフォルト: None |
bridges_enabled |
|
ブリッジを使用して Tor に接続するかどうか。デフォルト: False |
bridges_type |
|
|
bridges_builtin_pt |
|
|
bridges_moat |
|
|
bridges_custom |
|
|
bridges_builtin |
|
|
persistent_tabs |
|
ユーザがタブを 'saved' (OnionShare が起動するたびに永続的に保存され、Onion アドレスが変更されないことを意味する) と定義した場合、これらのタブにはランダムな識別子が与えられ、ここにリストされます。永続 Onion は、この識別子と同じ名前の JSON ファイルとして、"persistent" という名前の OnionShare 構成フォルダーのサブフォルダーに保存されます。デフォルト: [] |
locale |
|
OnionShare で使用される言語。デフォルト: なし ('en' と同じ) 。有効なロケールコードについては、https://github.com/onionshare/onionshare/blob/main/cli/onionshare_cli/settings.py の 'available_locales' をご覧ください。 |
theme |
|
OnionShare デスクトップアプリのテーマ。有効なオプションは、0 (ユーザーのコンピューターのライトテーマまたはダークテーマを自動的に検出)、1 (ライト)、または 2 (ダーク) です。 |
永続 Onion の構成ファイルパラメーター
前述のように、各永続 Onion には独自のパラメーターがあり、独自の JSON ファイルに保存されます。このファイルへのパスは、CLI ツールで --persistent を使用して指定できます。
永続的な JSON 構成の例を以下に示します。
{
"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": {}
}
JSON 内の各セクションについて、永続的 Onion の構成ファイルパラメーターとその意味を以下に示します
onion
パラメーター |
種類 |
説明 |
|---|---|---|
private_key |
|
Onion Service の Base64 エンコードされた秘密鍵 |
client_auth_priv_key |
|
クライアント認証を使用する場合の秘密鍵。これをユーザーに送信します。 |
client_auth_pub_key |
|
クライアント認証を使用する場合の公開鍵。OnionShare 側で使用されます。 |
永続
パラメーター |
種類 |
説明 |
|---|---|---|
mode |
|
この永続 Onion が使用するモード。オプションは "share"、"receive"、"website"、"chat" です。 |
enabled |
|
この Onion に対して永続性が有効かどうか。デスクトップで永続オプションをオフにすると、この JSON ファイル全体が削除されます。デフォルト: true |
autostart_on_launch |
|
OnionShare の起動時および Tor の接続時に、この永続 Onion を自動的に開始するかどうか。デフォルト: false |
一般
パラメーター |
種類 |
説明 |
|---|---|---|
title |
|
Onion Service に表示するオプションのカスタムタイトル。デフォルト: null (代わりに "OnionShare" が表示されます) |
public |
|
秘密鍵 (クライアント認証) を使用して Onion Service にアクセスできるかどうか。true の場合、秘密鍵は必要ありません。 |
autostart_timer |
|
Onion Service が特定の時刻に開始するように構成されているかどうか。時間はデスクトップアプリで設定するか、CLI ツールの |
autostop_timer |
|
Onion Service が特定の時刻に停止するように構成されているかどうか。時間はデスクトップアプリで設定するか、CLI ツールの |
service_id |
|
スキームと接尾辞「.onion」を含まない32文字の Onion Service の URL。 |
以下は、上記の persistent セクションで指定した「mode」に固有の設定です。
受信
パラメーター |
種類 |
説明 |
|---|---|---|
data_dir |
|
受信したファイルまたはテキストメッセージが格納されるパス。デフォルト: ユーザーのホームディレクトリーの「OnionShare」フォルダー。 |
webhook_url |
|
OnionShare がファイルまたはテキストメッセージを受信したときに POST する webhook URL。デフォルト: null |
disable_text |
|
テキストメッセージの受信を無効にするかどうか。デフォルト: false |
disable_files |
|
ファイルの受信を無効にするかどうか。デフォルト: false |
ウェブサイト
パラメーター |
種類 |
説明 |
|---|---|---|
disable_csp |
|
|
custom_csp |
|
デフォルトの代わりに送信するカスタムコンテンツセキュリティポリシーヘッダー。 |
log_filenames |
|
CLI ツールの使用時に URL 要求を stdout に記録するかどうか。デフォルト: false |
filenames |
|
共有するファイルのリスト。デフォルト: [] |
チャット
現在、チャットモードの設定はありません。