ドキュメント

クイックスタート + 機能・デバイスごとの解説(随時更新中)

インストールとアンインストール

本記事では、SSH Everywhere パネルのインストール、アップグレード、アンインストールの方法を詳しく説明します。特に「インストールディレクトリを変更した場合のアンインストール方法」と、コマンド内の書式の細部(スペース、引用符)を重点的に解説します。

1. インストール(1 行のコマンド)

グローバル IP を持つ Linux サーバー上で実行します:

curl -fsSL https://ssheverywhere.com/install.sh | bash

スクリプトは次を自動で行います:システムの検出 → 依存関係のインストール(Python3 / venv / pip / git / curl)→ コードのダウンロード → 仮想環境の作成 → Python 依存関係のインストール → systemd サービスの登録と起動。

Debian / Ubuntu / CentOS / Rocky / AlmaLinux / Fedora / WSL に対応(systemd がない場合は自動的にバックグラウンド実行に切り替え)。

インストールパラメータ

パラメータ説明例
--lang <コード>表示言語 + パネルの既定言語(既定ではシステム locale により自動判定。1〜16 の番号も受け付けます)--lang ja
--dir <ディレクトリ>インストール先ディレクトリ(既定は /opt/ssh-everywhere。書き込み不可の場合は自動的に ~/ssh-everywhere にフォールバックし、その旨を出力で説明します)--dir /opt/my-panel
--port <ポート>パネルのポート(既定 5501)--port 8080
--ascii純 ASCII 記号出力を強制([ok] / [..] / [!] / [x])。どの端末でも文字化けしません--ascii
--unicodeUnicode 記号出力を強制(✓ ⟳ ⚠️ ❌)。UTF-8 環境では既定でこれです--unicode
--yes / -yアップグレード時に自動確認し、対話は不要--yes

対応言語コード(16 種類)

コード言語コード言語コード言語コード言語
zh中文enEnglishja日本語ko한국어
esEspañolfrFrançaisdeDeutschruРусский
ptPortuguêsitItalianoarالعربيةtrTürkçe
viTiếng ViệtthไทยidBahasa Indonesiahiहिन्दी

--lang を渡さない場合はシステム locale に従って自動判定します(例:LANG=ja_JP.UTF-8 → 日本語の表示)。サーバーや端末の locale が UTF-8 でない場合(大手クラウドの軽量イメージでは LANG=C がよくあります)、スクリプトは自動的に純 ASCII 記号 [ok] に切り替え、言語を明示していなければ表示テキストも英語に戻し、冒頭でその理由を説明します — これは文字化けを避けるためです。言語を強制表示したい場合は以下を使えます:--lang xx --unicode。

パイプ方式で引数を渡す場合は bash -s -- を付けます:

# 日本語の表示 + 日本語パネル
curl -fsSL https://ssheverywhere.com/install.sh | bash -s -- --lang ja

# ロシア語の表示 + カスタムディレクトリとポート
curl -fsSL https://ssheverywhere.com/install.sh | bash -s -- --lang ru --dir /opt/my-panel --port 8080

# 古い端末 / GBK 端末の文字化け対策:純 ASCII 出力(中国語の表示 + [ok] 記号)
curl -fsSL https://ssheverywhere.com/install.sh | bash -s -- --lang zh --ascii

# アラビア語(RTL インターフェース)
curl -fsSL https://ssheverywhere.com/install.sh | bash -s -- --lang ar

先にダウンロードしてから実行することもできます(対話式で、言語・ディレクトリ・アップグレードの確認を順に尋ねます):

curl -fsSL https://ssheverywhere.com/install.sh -o install.sh && bash install.sh

> 大手クラウド(Tencent Cloud / Alibaba Cloud)は既定で root ログインを無効にしています。明示的に渡した --dir は優先して尊重され、現在のユーザーにそのディレクトリへの書き込み権限がない場合にのみ、スクリプトが自動的にあなたの HOME ディレクトリ(~/ssh-everywhere)に変更し、出力で「渡したディレクトリはどれか、なぜ置き換えられたか、そこにインストールしたいなら root で実行すること」を明示します。

2. アップグレード

インストールコマンドをもう一度実行するだけです。スクリプトにはバージョン検出が内蔵されており、新しいバージョンを見つけるとアップグレードを促します(データは保持、全自動):

curl -fsSL https://ssheverywhere.com/install.sh | bash -s -- --yes

--yes はアップグレード時に自動で確認する(対話不要)という意味です。

3. アンインストール

既定ディレクトリのアンインストール(対話式、推奨)

curl -fsSL https://ssheverywhere.com/uninstall.sh -o uninstall.sh && bash uninstall.sh

スクリプトはまず削除対象の内容を一覧表示して確認を求め、yes を入力した場合のみ実行します。

非対話 / スクリプトによるアンインストール

--yes を付けると確認をスキップします(安全チェックは維持されます):

curl -fsSL https://ssheverywhere.com/uninstall.sh | bash -s -- --yes

アンインストールパラメータ

パラメータ説明
--dir <ディレクトリ>インストールディレクトリ(既定 /opt/ssh-everywhere、変更した場合は必ず指定)
--keep-dataアンインストール前に data(サーバー設定 / データベース)を tar パッケージにバックアップ
--yes非対話モードでのアンインストール確認

4. インストールディレクトリを変更した場合のアンインストール方法(重要)

インストール時に --dir でディレクトリを変更した場合、アンインストール時にも同じ --dir を指定する必要があります。そうしないとスクリプトがインストールディレクトリを見つけられず自動的に中止します(これは誤削除を防ぐ安全保護です)。

ディレクトリパスにスペースがない場合

curl -fsSL https://ssheverywhere.com/uninstall.sh -o uninstall.sh && bash uninstall.sh --dir /opt/my-panel

パイプ方式(--dir は bash -s -- の後に置きます):

curl -fsSL https://ssheverywhere.com/uninstall.sh | bash -s -- --dir /opt/my-panel --yes

ディレクトリパスにスペースがある場合

ディレクトリ名にスペースが含まれる場合は、パス全体を二重引用符で囲む必要があります。そうしないと shell がパスを 2 つに分割し、スクリプトがディレクトリを見つけられません:

bash uninstall.sh --dir "/opt/my panel"

パイプ方式も同様です(引用符でパス全体を囲み、半分だけ囲まないようにしてください):

curl -fsSL https://ssheverywhere.com/uninstall.sh | bash -s -- --dir "/opt/my panel" --yes

データを保持してアンインストールしたい場合

bash uninstall.sh --dir /opt/my-panel --keep-data

data(サーバー設定 / データベース)は <インストールディレクトリ>-data-backup-<タイムスタンプ>.tar.gz にバックアップされ、アンインストール後に取り出せます。

> 💡 推奨:インストールの時点でディレクトリ名にスペースを使わず、ハイフンやアンダースコア(my-panel、my_panel など)にすることをおすすめします。引用符にまつわる手間を省けます。

5. 安全について

アンインストールスクリプトには 3 層の保護が内蔵されており、誤削除を防ぎます:

1. 絶対パスの検証 —— 相対パスを拒否します。

2. システム重要ディレクトリのブラックリスト —— /、/root、/etc、/usr、/var などを拒否します。

3. インストールディレクトリのフィンガープリント検証 —— VERSION と app.py が同時に存在する場合のみ削除し、そうでなければ中止します。

> アンインストールはパネル本体のみを削除し、対象サーバー / デバイス上の Agent は影響を受けません(パネル削除後はオフラインとして表示されます)。