このプロジェクトについて

crocは、任意の2台のコンピュータ間でファイルやフォルダーを簡単に安全に交換できるコマンドラインファイル転送ツールです。READMEによると、ピアツーピア転送とリレーフォールバック、パスワード認証付き鍵交換(PAKE)に基づくエンドツーエンド暗号化、クロスプラットフォームサポート(Windows、Linux、macOS、ブラウザクライアント)、複数ファイル転送、中断された転送の再開、ローカルサーバーやポートフォワーディングの必要性なしを組み合わせています。IPv6優先でIPv4フォールバックに対応し、Torなどのプロキシを通じて動作可能とされています。 使用は短いコードフレーズに焦点を当てています。送信者は`croc send [ファイルやフォルダー]`を実行し、コードフレーズを出力します。受信者は別のマシンで`croc コードフレーズ`を実行します。コードフレーズはPAKEハンドシェイクを駆動し、暗号化に使用される共有秘密鍵を生成します。LinuxやmacOSでは、プロセス名を通じた漏洩を避けるために環境変数`CROC_SECRET=*** croc`を推奨しており、単一ユーザー環境では`--classic`オプションでデフォルト動作を復元できます。 基本的な送受信に加え、ツールは多くのオプションをドキュメント化しています。カスタムコードフレーズ、既存ファイルの処理用の`--overwrite`と`--rename`、フォルダー内容のフィルタリング用の`--exclude`と`--exclude-file`、stdin/stdoutを通じたパイプ、`--text`による短いテキストの送信、複数ファイルやフォルダーの送信、モバイル用のQRコード表示、SOCKS5プロキシサポート、選択可能な暗号化曲線、代替の`imohash`ハッシュアルゴリズム、クリップボード動作フラグ、スクリプト用のクールモードなどが含まれます。 READMEでは`croc ssh`も説明されており、Linux、macOS、FreeBSD、OpenBSDで永続的なターミナルセッションを共有します。ホストは読み取り/書き込みおよび読み取り専用参加者用の6語の招待を別途発行し、エフェメラルなWireGuard経路とエフェメラルなSSHホストキーを使用します。リモートコマンド、フォワーディング、SFTPは無効化されています。別途`croc store`モードでは、クライアント側で暗号化された暗号文を後で取得するためにアップロードでき、ダウンロード制限と有効期限の設定、URLフラグメントに暗号化キーを持つブラウザリンク、および取り消しコマンドが可能です。 トランスポート選択は`--transport auto`でデフォルト設定されます。PAKEハンドシェイク後に、互換性のあるネイティブクライアントはWireGuardベースの経路を試み、DERPフォールバックとNATトラバーサルを行い、そうでない場合はcrocのリレーデータポートにフォールバックします。ユーザーは`croc relay`でリレーサーバーを自己ホスト(デフォルトTCPポート9009-9013)またはDockerで行い、パスワードをオプションで設定できます。React/Viteで構築された別途の`croc-web`サーバーにはブラウザクライアントがバンドルされており、ファイルの送受信および`croc ssh`セッションへの参加が可能で、CLIと互換性があります。インストールはシェルスクリプト、Homebrew、MacPorts、Scoop、Chocolatey、Nix、Alpine、Debian、Arch、Termux、FreeBSD、Conda、Docker、Goでのソースビルド、コミュニティのAndroidおよびデスクトップGUIアプリを通じてドキュメント化されています。展開ノートにはDiscoに関する環境変数、リレーポート、永続的なストアボリュームが含まれます。