高度な使い方

タブを保存

OnionShare のタブを閉じると、タブは破棄され、これを再利用することはできません。固定タブでホストされているウェブサイトは、それをホストしているコンピューターが再起動した場合でも、同じアドレスでアクセスすることができます。

サーバーを開始する前に「OnionShare の起動時に常にこのタブを開く」にチェックを入れると、タブを固定することができます。

_images/advanced-save-tabs.png

OnionShare を開くと、前回のセッションで保存したタブを開きます。その後、それぞれのサービスを手動で開始すると、同じ OnionShare のアドレスで、同一の秘密鍵で保護されたサービスが利用できるようになります。

タブを保存すると、その Onion Service の秘密鍵のコピーがあなたのコンピューター上に保存されます。

秘密鍵を無効にする

既定では、すべての OnionShare のサービスは、秘密鍵で保護されます。これは Tor では「クライアント認証」と呼ばれているものです。

OnionShare のサービスを読み込むと、Tor Browser は秘密鍵を入力するよう要求します。サービスを公開したい場合は、秘密鍵を完全に無効にすることをお勧めします。

タブに関して秘密鍵を無効にするには、サーバーを開始する前に「公開の OnionShare のサービスとして設定 (秘密鍵が無効となります) 」にチェックを入れてください。そうすると、サーバーは公開され、Tor Browser でこれを読み込む際に秘密鍵を入力する必要はなくなります。

カスタムタイトル

Tor Browser で OnionShare のサービスを読み込むと、それぞれの種類のサービスに既定のタイトルが表示されます。例えば、チャットのサービスの既定のタイトルは「OnionShare Chat」です。

サーバーを開始する前に「カスタムタイトル」を設定すると、既定のタイトルを変更できます。

スケジュールの設定

OnionShare では、サービスを開始・停止する時刻を予定することができます。サーバーを開始する前に、そのタブの「詳細設定を表示」をクリックし、「指定の日時に Onion Service を開始」と「指定の日時に Onion Service を停止」の片方または両方にチェックを入れて、希望日時を入力してください。

今後開始する予定のサービスは、「共有を開始」ボタンをクリックするとカウントダウンタイマーが表示されます。今後停止する予定のサービスは、開始時にカウントダウンタイマーが表示されます。

OnionShare の自動開始の設定は「死者のスイッチ」として使用できます。その場合、もし将来、あなたにより OnionShare の自動開始の設定が解除されなければ、指定の日時にサービスが公開されます。何もあなたの身に起こらなければ、サービスが開始する前に、これを中止することができます。

_images/advanced-schedule-start-timer.png

OnionShare のサービスの自動終了の設定は、サービスが公開される期間を限定できます。古くなってしまう秘密の情報などを共有したい場合は、期間を選択、限定してこれを共有することができます。

_images/advanced-schedule-stop-timer.png

コマンドライン・インターフェース

グラフィカル・インターフェースに加えて、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.txtmy-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 設定で publictrue に設定します。

キーボードのショートカット

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 データを別のコンピューターに移行する

別のコンピューターに乗り換えるときに、OnionShare のデータを移行したい場合もあるはずです。これは、「永続的な」Onion アドレスがあり、それを保持したい場合に特に当てはまるでしょう。

OnionShare は、このようなデータをすべて特定のフォルダーに保存します。次のオペレーティングシステムに対応するフォルダーを新しいコンピューターにコピーします。

  • Linux: ~/.config/onionshare

  • macOS: ~/Library/Application Support/OnionShare

  • Windows: %APPDATA%\OnionShare

設定ファイルのパラメーター

OnionShare は、その設定を JSON ファイルに保存します。CLI 版とデスクトップ版の両方で、この構成ファイルを使用します。CLI では、カスタム構成ファイルへのパスを --config で指定することもできます。

構成ファイルのパラメーターとその意味を以下に示します。ここに記載されていないパラメーターが構成ファイルに含まれている場合は、古い OnionShare バージョンでは使用されていない可能性があります。

パラメーター

種類

説明

version

string

OnionShare のバージョン。この値を変更する必要は一切ありません。

connection_type

string

OnionShare が Tor に接続する方法。有効なオプションは 'bundled'、'automatic' (Tor Browser の Tor 接続を使う)、'control_port' または 'socket_file' です。デフォルト: 'bundled'

control_port_address

string

connection_type が 'control_port' に設定されている場合の、Tor の制御ポートの IP アドレス。デフォルト: '127.0.0.1'

control_port_port

integer

connection_type が 'control_port' に設定されている場合の、Tor の制御ポートのポート番号。デフォルト: '9051'

socks_address

string

connection_type が 'control_port' または 'socket_file' に設定されている場合の、Tor の SOCKS プロキシの IP アドレス。デフォルト: '127.0.0.1'

socks_port

integer

connection_type が 'control_port' または 'socket_file' に設定されている場合の、Tor の SOCKS プロキシのポート番号。デフォルト: '9050'

socket_file_path

string

connection_type が 'socket_file' に設定されている場合の、Tor のソケットファイルへのパス。デフォルト: '/var/run/tor/control'

auth_type

string

Tor の制御ポートへのアクセスにパスワードが必要な場合は 'password'、そうでなければ 'no_auth' を設定します。デフォルト: 'no_auth'

auth_password

string

Tor の制御ポートへのアクセスにパスワードが必要で、auth_type が 'password' に設定されている場合は、ここでパスワードを指定します。デフォルト: ''

auto_connect

boolean

OnionShare の起動時に Tor に自動的に接続するかどうか。デフォルト: False

use_autoupdate

boolean

OnionShare が (Tor 経由で) 更新を自動的に確認するかどうか。この設定は、MacOS または Windows インストールでのみ有効です。デフォルト: True

autoupdate_timestamp

integer

OnionShare が最後に更新を確認した時刻。デフォルト: None

bridges_enabled

boolean

ブリッジを使用して Tor に接続するかどうか。デフォルト: False

bridges_type

string

bridges_enabled が True の場合、ブリッジを読み込む場所。オプションには、"built-in" (OnionShare に付属し、Tor から更新される可能性のあるブリッジ)、"moat" (Tor の Moat API からブリッジをリクエストする)、"custom" (ユーザーが指定するブリッジ) があります。デフォルト: "built-in"

bridges_builtin_pt

string

bridges_type が "built-in" に設定されている場合、使用するブリッジプロトコルのタイプを指定します。オプションは "obfs4"、"meek-azure"、または "snowflake" です。デフォルト: "obfs4"

bridges_moat

string

bridges_type が "moat" に設定されている場合、Tor の Moat API から返されたブリッジはここに保存されます。デフォルト: ""

bridges_custom

string

bridges_type が "custom" に設定されている場合、ユーザが指定したブリッジはここに保存されます。文字列内の各ブリッジラインは 'n' で区切ります。デフォルト: ""

bridges_builtin

dict

bridges_type が "built-in" に設定されている場合、OnionShare は Tor が推奨する最新の内蔵ブリッジを取得し、ここに保存します。デフォルト: {}

persistent_tabs

list

ユーザがタブを 'saved' (OnionShare が起動するたびに永続的に保存され、Onion アドレスが変更されないことを意味する) と定義した場合、これらのタブにはランダムな識別子が与えられ、ここにリストされます。永続 Onion は、この識別子と同じ名前の JSON ファイルとして、"persistent" という名前の OnionShare 構成フォルダーのサブフォルダーに保存されます。デフォルト: []

locale

string

OnionShare で使用される言語。デフォルト: なし ('en' と同じ) 。有効なロケールコードについては、https://github.com/onionshare/onionshare/blob/main/cli/onionshare_cli/settings.py の 'available_locales' をご覧ください。

theme

boolean

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

string

Onion Service の Base64 エンコードされた秘密鍵

client_auth_priv_key

string

クライアント認証を使用する場合の秘密鍵。これをユーザーに送信します。

client_auth_pub_key

string

クライアント認証を使用する場合の公開鍵。OnionShare 側で使用されます。

永続

パラメーター

種類

説明

mode

string

この永続 Onion が使用するモード。オプションは "share"、"receive"、"website"、"chat" です。

enabled

boolean

この Onion に対して永続性が有効かどうか。デスクトップで永続オプションをオフにすると、この JSON ファイル全体が削除されます。デフォルト: true

autostart_on_launch

boolean

OnionShare の起動時および Tor の接続時に、この永続 Onion を自動的に開始するかどうか。デフォルト: false

一般

パラメーター

種類

説明

title

string

Onion Service に表示するオプションのカスタムタイトル。デフォルト: null (代わりに "OnionShare" が表示されます)

public

boolean

秘密鍵 (クライアント認証) を使用して Onion Service にアクセスできるかどうか。true の場合、秘密鍵は必要ありません。

autostart_timer

boolean

Onion Service が特定の時刻に開始するように構成されているかどうか。時間はデスクトップアプリで設定するか、CLI ツールの --auto-start-timer で秒単位で指定することができます。デフォルト: false

autostop_timer

boolean

Onion Service が特定の時刻に停止するように構成されているかどうか。時間はデスクトップアプリで設定するか、CLI ツールの --auto-stop-timer で秒単位で指定できます。デフォルト: false

service_id

string

スキームと接尾辞「.onion」を含まない32文字の Onion Service の URL。

以下は、上記の persistent セクションで指定した「mode」に固有の設定です。

共有

パラメーター

種類

説明

autostop_sharing

boolean

ファイルが最初にダウンロードされた際に共有を自動的に停止するかどうか。デフォルト: true

filenames

list

共有するファイルのリスト。デフォルト: []

log_filenames

boolean

CLI ツールの使用時に URL 要求を stdout に記録するかどうか。デフォルト: false

受信

パラメーター

種類

説明

data_dir

string

受信したファイルまたはテキストメッセージが格納されるパス。デフォルト: ユーザーのホームディレクトリーの「OnionShare」フォルダー。

webhook_url

string

OnionShare がファイルまたはテキストメッセージを受信したときに POST する webhook URL。デフォルト: null

disable_text

boolean

テキストメッセージの受信を無効にするかどうか。デフォルト: false

disable_files

boolean

ファイルの受信を無効にするかどうか。デフォルト: false

ウェブサイト

パラメーター

種類

説明

disable_csp

boolean

true に設定すると、OnionShare はウェブサイトのデフォルトのコンテンツセキュリティポリシーヘッダーを設定しません。デフォルト: false

custom_csp

string

デフォルトの代わりに送信するカスタムコンテンツセキュリティポリシーヘッダー。

log_filenames

boolean

CLI ツールの使用時に URL 要求を stdout に記録するかどうか。デフォルト: false

filenames

list

共有するファイルのリスト。デフォルト: []

チャット

現在、チャットモードの設定はありません。