機能
sshcは、SSHとローカルシェルを扱うターミナルアプリです。SFTP、ポート転送に加え、OpenSSH接続管理、認証情報とワンタイムパスワードの再利用、接続ごとのVPN、CLI、暗号化同期を備えています。インストールせずに試す場合は、公開デモを使えます。
Terminal
- SSHとローカルシェルを同じ画面で操作し、ワークスペースごとにまとめる。LLMが開いた接続は非表示のワークスペースへ
- 接続の進行状況を表示し、終了したSSHセッションへ、ペインとスクロールバックを残したまま再接続
- 分割表示で、複数のセッションを1画面に並べる
- sshcエンジンが止まる前に開いていたセッションを、次の起動で開き直す
- 画面に出たファイルのパスを押して、画像・テキスト・音声・動画をその場でプレビュー
- リモートセッションで、SSHの接続先に常駐するsshcエンジンのターミナルを、このマシンのブラウザから使う
- 検索、文字コード、リンクやリモートパスを開く操作
- クイックコマンドとスニペットを、実行前の確認、接続時の自動実行、複数の接続先への実行に利用
- タイトルと通知で、プログラムが送るセッション名や通知を表示。Claude CodeやCodexの通知にも対応
- Claude Codeの状態を、設定なしでセッションの一覧に表示し、許可や回答を待ち始めたら通知
- ポート転送はLocal forwarding、Remote forwarding、Dynamic SOCKSに対応し、保存済みの設定と一時的な転送を使い分け
- Terminalのカラーパレット、フォント、背景を設定で変更
接続管理
~/.ssh/config、Include、Matchを解析- コメント、記述順、空白をできるだけ崩さずに編集
- 接続とグループで接続先を検索・整理し、作成、複製、名前変更
- ホスト、設定ファイル、スニペット、設定、ショートカットの操作、テーマなどの切り替えをコマンド検索([検索]か
Ctrl/Cmd+K)でまとめて探す - 接続設定に従ってProxyJump、鍵、保存済みの認証情報を使用
ProxyCommandをローカルで実行し、その標準入出力をSSH接続に使用- OpenSSH形式を保ち、通常の
ssh、VS Code、Codexでも同じエイリアスを使用 - [Diagnostics]で、保存済みの接続先や一時的に指定したホストの設定を解析し、疎通を確認
- [History]で、SSH Configや鍵などの完了した変更を確認し、中断した書き込みの復旧やファイル単位の復元を実行
SSH鍵とKnown Hosts
- SSH鍵の生成、名前変更、グループ間の移動、パスフレーズの編集、公開鍵のコピー、ssh-agentへの追加
- [Remote Keys]で、
~/.sshの公開鍵を1台以上の接続先のauthorized_keysへ追加 - Known Hostsを並べ替えて確認し、未登録のホスト鍵は接続時に確認。保存済みの鍵が変わっていても自動では上書きしない
認証情報
パスワードと鍵のパスフレーズはVaultに暗号化して保存し、接続先や鍵に割り当てます。Vaultへ一度登録すれば、Terminal、SFTP、ProxyJump、CLIから再利用できます。Vaultは自動ロックとマスターパスワードの変更に対応しています。
ワンタイムパスワード(TOTP)
- Base32のセットアップキー、または
otpauth://totp/...URIを名前付きでVaultに保存 - 現在の6桁コードを表示し、必要なときはひとつ前とひとつ後のコードも確認
- 接続先に割り当てると、サーバーが
Verification codeなどを明示して求めたときだけコードを自動入力。Terminal、SFTP、sshc ssh、ProxyJumpの踏み台で共通 - CLIでは
sshc otp list|show|add|edit|removeで管理
VPN
接続ごとのVPNでは、選んだSSH接続だけを、その接続専用のVPN経由で接続します。このマシンのルーティングとDNSは変更しません。WireGuard、L2TP/IPsec、OpenConnect、OpenVPN、IKEv2/IPsecに対応し、Dockerが動いているマシンで使用できます。VPNのシークレットはVaultに保存します。
SFTP
- SFTPでリモートファイルを閲覧し、テキストファイルを編集
- ローカル側でも、ファイルやフォルダの削除、名前変更、フォルダ作成。削除は確認してから実行
- リモート側で、シンボリックリンクの作成とリンク先の変更、所有者とグループの変更、空き容量の表示
- 複数選択した項目の権限を、ファイルとフォルダで別々にまとめて変更
- 名前の検索と、複数のテキストファイルの内容検索
- デスクトップでは2つの接続先を並べてフォルダを比較し、Remote→Remoteでコピー/移動。比較はサイズと更新日時のほか、SHA-256で内容まで確認可能
- 転送マネージャーで進行状況を確認し、一時停止・再開・キャンセル。すべての転送を合算した速度上限と、通信が切れたときの自動復旧を設定可能
- 転送キューはsshcエンジンが管理・保存するため、別画面への移動やsshcエンジン再起動後も状態を復元
CLI
- Web UIとCLIは、共通のsshcエンジン、OpenSSH設定、Vaultを使用
- CodexなどのAIエージェントは
sshc ssh <alias> --non-interactive -- <command...>を直接実行できる。Vaultのロックが解除されていれば、保存済みのパスワードや鍵のパスフレーズで認証 - SerialとTelnetも、対話操作と自動処理の両方で使用可能
sshc updateで更新し、sshc service installでsshcエンジンをサービスとして登録。sshc service restartで再起動
暗号化同期
暗号化同期では、接続設定、認証情報、スニペット、同期対象から除外していないSSH鍵をこのマシン上で暗号化し、利用者が用意したS3互換ストレージへPush/Pullできます。ストレージ事業者は、これらの内容を平文では取得できません。バケット名やS3オブジェクト名など、暗号化されない情報はセキュリティで確認できます。
Android
Androidアプリでも同じ画面を使い、SSH、SFTP、ローカルシェルを操作できます。スマートフォンでは下部のナビゲーションと補助キーで操作します。署名済みのAPKはGitHub Releasesから入手できます。
更新と設定
- macOS・LinuxのHomebrew版と
install.sh版、Windowsのinstall.ps1版は、導入方法を確認でき、インストール先への書き込み権限がある場合に、新しい安定版へWeb画面から更新できます(更新手順) - アプリのテーマ(システム/ライト/ホワイトブルー/ホワイトパープル/ダーク/ダークブルー/ダークパープル)とさし色、表示言語(日本語/English)、キーボードショートカット、Vaultの自動ロックを設定で変更
公開デモ
公開デモでは、ブラウザの中でLinuxのVMを3台起動し、インストールせずにWeb UIとCLIからSSH接続やSFTPを試せます。