Shellvana ドキュメント
Shellvana はスマホ向けの SSH クライアントです。標準的な SSH であなた自身のサーバーに接続し、出力を読みやすいテキストで表示します。このページでは、設定方法と日常的な使い方を説明します。
動作要件
- スマホ。iOS 15 以降の iPhone、または Android スマホ。
- 標準的な
sshdが動いているホスト。sshですでに接続できる Linux、BSD、macOS のマシンなら、どれでも使えます。サーバー側にインストールするものはありません。エージェントも、デーモンも、プラグインも不要です。 - そのホストへのネットワーク経路。Shellvana は、入力したアドレスにスマホから直接接続します。ホストが自宅のネットワーク内からしか届かない場合は、先に自分の VPN (WireGuard、Tailscale など) でつないでください。Shellvana は、間に入るリレーやクラウドサービスを持っていません。
インストール
Shellvana は App Store または Google Play から入手できます。アプリは無料です。アカウントの作成も、サインインも必要ありません。
ホストを追加する
- ホスト一覧で + をタップし、ホストを追加を開きます。
- 名前 (好きなラベル)、ホスト (アドレスまたはホスト名)、ポート (通常は 22)、ユーザーを入力します。
- 認証で、パスワードまたは登録済みの SSH 鍵のどれかを選びます。まだ鍵がない場合、選べるのはパスワードだけです。SSH 鍵をご覧ください。
- グリッドでは、Shellvana がサーバーに要求するターミナルのサイズを選びます。コンソールは 132 桁 × 40 行で、通常のシェル作業に向いています。AI エージェントは 60 桁 × 40 行で、サイドバーを描く全画面のターミナルアシスタントに向いています。カスタムでは、桁と行を自分で指定できます。
- 保存をタップし、続けてホストをタップして接続します。
初回接続とホスト鍵
初めて接続すると、Shellvana がサーバーのホスト鍵のアルゴリズムとフィンガープリントを表示し、このホストを信頼しますか?と尋ねます。たとえば ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub でサーバー側のフィンガープリントと照らし合わせてから、信頼するをタップしてください。
Shellvana はその鍵を記憶します。サーバーが後から別の鍵を提示した場合は、警告: ホスト鍵が変更されましたと表示され、以前のフィンガープリントと新しいフィンガープリントが並べて示されます。新しい鍵を受け入れるためにホスト名を入力しない限り、セッションは開きません。サーバーの再インストールや鍵の再生成をしていないなら、受け入れないでください。
脆弱なホスト鍵アルゴリズムや旧式のアルゴリズムは拒否されます。「ホスト鍵のアルゴリズム ... は許可されていません」と表示された場合は、サーバー側で Ed25519 などの新しいホスト鍵を有効にしてください。
セッションを読む
- リーダー表示。セッションは、必ずリーダー表示で開きます。文章と Markdown は、スマホ向けのサイズのプロポーショナルフォントに折り返されます。表、diff、ツリー出力、桁をそろえたものは、正確な間隔のまま等幅フォントで表示されます。
- ターミナル表示。上部バーのターミナルアイコンをタップすると、サーバーが送ったそのままのグリッドが表示されます。読みやすい表示に戻るには、リーダーアイコンをタップします。どちらの表示も同じセッションを映しているので、切り替えても失うものはありません。
- リーダー用フォントと文字サイズ。上部バーのリーダー用フォントアイコンをタップすると、書体と文字サイズを変更できます。
- 全画面プログラム。
vim、htop、tmuxなどのプログラムは、普段どおり動作します。プログラムが画面を占有すると、そのレイアウトにはグリッドが必要だとお知らせし、グリッドボタンを表示します。 - リンク。出力に含まれるリンクは、移動先を確認してからでないと開きません。開くのは、アプリの外にあるあなた自身のブラウザです。
コマンドを入力する
- 下部のコンポーザー (コマンドを入力) に入力し、送信ボタンをタップします。
- コンポーザーの上のキー行から、スマホのキーボードにないキーを送れます。Ctrl-C、Tab、Esc、矢印キー、Ctrl-D、Ctrl-Z などです。
- 出力がパスワードの入力待ちのように見えるときは、Shellvana がセキュア入力を提案します。この方法で入力したテキストはサーバーに送られますが、保存されず、記録にも残りません。
SSH 鍵
ホスト一覧のメニュー (三つの点) を開き、SSH 鍵を選びます。
- 鍵をインポートする。インポートをタップし、OpenSSH の秘密鍵を貼り付けます。パスフレーズがある場合は入力します。鍵はデバイス上で暗号化されて保存されます。
- ハードウェア鍵を生成する (Pro)。セキュアな鍵を生成を選ぶと、スマホのセキュアハードウェアの中に鍵が作られます。iPhone では Secure Enclave、Android では StrongBox またはハードウェア保護の Keystore です。秘密鍵の半分は、デバイスの外には出ません。これらの鍵は ECDSA P-256 で、サーバー側では
ecdsa-sha2-nistp256として表示されます。 - 公開鍵をサーバーに登録する。鍵のメニューを開いて公開鍵をコピーを選び、その行をサーバー上の自分のユーザーの
~/.ssh/authorized_keysに追加します。初回は、この作業のためにパスワードで接続してください。 - 鍵を使う。ホストを編集し、認証でパスワードの代わりにその鍵を選びます。
切断されても作業を続けるには
スマホは接続を落とします。画面のロック、ネットワークの切り替え、アプリのバックグラウンド化などが原因です。Shellvana が再接続すると、サーバーは新しいシェルを渡します。以前のシェルで動いていたものは、ターミナルマルチプレクサの中で動かしていない限り、失われます。
長時間かかる処理は、サーバー上の tmux または screen の中で開始してください。たとえば、接続後に tmux new -A -s main を実行します。接続が切れたら、もう一度接続して同じコマンドを実行すれば、続きから再開できます。
ホストごとのセキュリティ設定
- 接続前にロック解除を要求。デフォルトではオフです。ホストでオンにすると、そのホストでセッションを開く前に、Shellvana が指紋、顔、または画面ロックでの確認を求めます。
- スクリーンショットをブロック。デフォルトではオンです。セッションのスクリーンショットとアプリ切替時のプレビューがブロックされます。ホストごとにオフにもできます。
- シークレットで接続 (Pro)。ホストのメニューから選ぶと、記録をまったく残さないセッションが開きます。
履歴とあなたのデータ
- セッションの記録は、スマホの中にだけ保存され、SQLCipher で暗号化されます。30 日より古い記録は自動的に削除されます。
- 1 つのホストの保存済みの記録を削除するには、そのホストのメニューを開いてこのホストの履歴を削除を選びます。すべて削除するには、メインメニューを開いてすべての履歴を削除を選びます。
- ホストを削除すると、一覧からは消えますが、保存済みの記録と信頼済みのホスト鍵は残ります。それらも消したい場合は、先に履歴を削除してください。
- Shellvana にはアカウントも、アナリティクスも、クラッシュレポートもありません。アプリが行うすべてのネットワーク接続は、プライバシーポリシーに記載しています。
無料版と Pro
- 無料版。同時セッションは 1 つ。パスワード認証と鍵認証、ホストプロファイル、完全な読みやすい表示が使えます。読みやすさは、有料機能ではありません。
- Pro。サブスクではなく、一度きりの買い切りです。同時セッションが最大 4 つ、ハードウェア保護の鍵認証、すべてのリーダー用フォント、シークレットセッションが加わります。
- 購入と復元。ホスト一覧のメニューを開き、Shellvana Proを選びます。新しいスマホでは、その画面の購入を復元をタップします。
トラブルシューティング
- 接続がタイムアウトする。まず、スマホからそのホストに届くかどうかを確認してください。ホストがプライベートネットワークにある場合は、先に VPN をオンにし、ポートが
sshdの待ち受けポートと一致しているかも確認してください。 - 鍵が拒否される。公開鍵をコピーで取得した公開鍵が、ホストプロファイルで指定したユーザーの
~/.ssh/authorized_keysに 1 行で入っているか、そしてサーバーがその鍵の種類を許可しているかを確認してください。 - リーダー表示でプログラムのレイアウトが崩れる。ターミナル表示に切り替えてください。全画面プログラムはグリッド向けに描画されており、グリッドは常に正確な出力です。
- 全画面アシスタントの表示が切れる。ホストを編集してグリッドをAI エージェントに変更し、再接続してください。
- 「以前の購入が見つかりませんでした。」と表示される。Pro を購入したときと同じ App Store または Google Play のアカウントでスマホがサインインしているか確認し、もう一度購入を復元を試してください。
ヘルプ
お使いの端末のモデルと iOS または Android のバージョンを添えて、[email protected] にメールしてください。サポートページもご覧いただけます。