Skip to content
aida0710Public

About

A local-first, cross-platform SSH workspace with terminal, SFTP, encrypted sync, split sessions, and CLI automation.

Topics

Resources

Stars

3 stars

Watchers

0 watching

Forks

Repository files navigation

sshc

OpenSSHの設定ファイルをそのまま使う、ローカルファーストのSSHクライアントです。接続管理、Terminal、SFTP、Workspace、スニペット、接続ごとのVPN、暗号化同期を1つのUIとCLIから扱えます。

日本語ドキュメント · English documentation · Releases

sshcのHome画面

インストール

macOS / Linux:

Homebrewを未導入の場合は、公式サイトの手順でインストールします。

brew install aida0710/tap/sshc

Homebrewを使わない場合は、インストーラーとバイナリのバージョンを同じReleaseタグに固定してください。

SSHC_VERSION=v0.43.1 sh -c \
  'curl -fsSL https://raw.githubusercontent.com/aida0710/sshc/v0.43.1/install.sh | sh'

Windows PowerShell:

powershell -NoProfile -ExecutionPolicy Bypass -Command "irm https://github.com/aida0710/sshc/releases/latest/download/install.ps1 | iex"

Android APKと各OS向けのバイナリはGitHub Releasesから取得できます。詳しい検証方法と更新手順はインストールガイドを参照してください。

起動

sshc engine
sshc

sshc engineはフォアグラウンドで動作し、デーモン化しません。引数なしのsshcはsshcエンジンを起動しません。自動起動はOSのプロセス管理機能で設定します。Linuxではsshc service installでsystemdユーザーサービス、macOSではlaunchdユーザーエージェントへ登録できます。その他の環境ではtmuxなどを利用できます。

初回はWeb UIまたはCLIでVaultを作成し、ロックを解除します。

sshc vault create
sshc vault unlock

マスターパスワードはWeb UIまたはsshc vaultで入力します。CLIでは対話ターミナルからの入力だけを受け付け、引数や環境変数からは受け取りません。

パスワードを設定したVaultは既定で、Vault内のシークレットを最後に読み書きしてから12時間後に自動でロックされます。Settingsで1〜999分/時間に変更するか、自動ロックを無効にできます。パスワードなしのVaultは自動ではロックされず、sshcエンジンの起動時に自動でロックを解除します。

CLIコマンド

sshc ssh                     # 接続先を選択
sshc ssh <接続先>            # 対話SSH
sshc ssh <接続先> --non-interactive -- <コマンド>
sshc info <接続先> --json    # sshcエンジンなしで実際に使われる設定を表示
sshc status --json           # sshcエンジンの状態
sshc sync                    # 同期状態
sshc sftp get <接続先> /remote/file ./local-file
sshc sftp put <接続先> ./local-file /remote/file
sshc help                    # すべてのコマンド

主な機能

  • OpenSSHのコメント、順序、空白、Includeを保った設定管理
  • 接続状態、検索、出力を引き継ぐ再接続、貼り付け前の確認、文字コード、クイックコマンドを備えたTerminal
  • フォルダ転送、中断からの再開、バックグラウンドの転送キュー、エディタを備えたSFTP
  • SSHとローカルシェルを最大4ペインに並べるWorkspace
  • パスワード、鍵のパスフレーズ、TOTPのセットアップキーをVaultに保存し、Terminal、SFTP、CLIで再利用する認証情報の管理
  • 選んだSSH接続だけを専用のVPN経由で接続する、接続ごとのVPN(WireGuard、L2TP/IPsec、OpenConnect、OpenVPN、IKEv2/IPsec。Dockerを使用)
  • セッション、ホスト、ファイル、スニペット、設定を横断するコマンド検索(Search)
  • S3互換ストレージを使った暗号化スナップショット同期
  • SSH、SFTP、Serial、Telnet、同期、VPN、OTP、Terminal操作のCLI

機能とセキュリティ上の制限は利用者向けドキュメントにまとめています。内部設計はdocs/design.mdを参照してください。

開発

Go 1.26とNode.js 22が必要です。

make build
make test
make verify-generated
make e2e
make integration-up
make integration
make integration-down

make testは、gofmt、go vet、Goのテスト(raceを含む)、Android向けのビルド、使われていない関数の検査、ESLint、Webの単体テストと型検査を実行します。make verify-generatedは、生成物と埋め込みUIがコミット済みの内容と一致するかを確かめます。CIはこの2つの検査に加えて、Android APK、VPNのコンテナイメージ、統合テスト、利用者向けサイトのビルド、依存の脆弱性、主要画面のアクセシビリティを確かめます。E2Eの全体はCIでは実行しないため、画面を変えたときはmake e2eも実行してください。

Web UIを変更したときはinternal/ui/distも更新してください。利用者向けサイトはpages/にあり、npm run buildで検証できます。

License

Apache License 2.0

About

A local-first, cross-platform SSH workspace with terminal, SFTP, encrypted sync, split sessions, and CLI automation.

Topics

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Used by

Contributors

Languages