第6章:仮想ファイルシステムとネットワーク¶
最新のファイル管理が単一の物理ハード ドライブの境界で停止することはほとんどありません。 ソフトウェア開発者は、SFTP 経由でリモート ステージング環境を維持します。 システム管理者は、SMB/CIFS 経由でエンタープライズ ファイル共有を管理します。 コンテンツ作成者は、WebDAV 経由でクラウド ストレージやメディア サーバーにアクセスします。 パワー ユーザーは、ギガバイト規模の圧縮アーカイブを定期的に検査、編集、パッケージ化します。
従来のデスクトップ環境では、ユーザーは、zip アーカイブを解凍して再圧縮するためのスタンドアロン アーカイブ ユーティリティ、サーバー資産を管理するための外部 FTP/SFTP クライアント、切断された Finder ウィンドウにリモート ボリュームを分散させるオペレーティング システムのマウント ダイアログなど、バラバラのアプリケーションをやりくりする必要がありました。
ATBCmder は、仮想ファイル システム (VFS) エンジンを通じてこの断片化を排除します。 統一された vfs:// URI 抽象化レイヤー上に構築された ATBCmder は、リモート サーバーと圧縮アーカイブを標準のローカル フォルダーとまったく同じように扱います。 .tar.gz アーカイブに移動し、F3 でコード ファイルをプレビューし、F4 でネストされた構成ファイルを編集し (保存時に自動ライブ再パッキング)、標準の F5 キーを使用して安全な SFTP セッションを介して資産をオンプレミスの SMB NAS に直接コピーできます。これらはすべて必要ありません。 中間ファイルをディスクに抽出したり、別のツールを切り替えたりすることができます。
1. ビジュアル クイックスタート: VFS アーキテクチャとコマンド マトリックス¶
ATBCmder は、すべてのファイルシステム アクセスを統合抽象化レイヤー経由でルーティングします。 パスが Apple APFS SSD パーティションを指している場合でも、ネストされた .zip アーカイブ内のメンバーを指している場合でも、地球の裏側にある Linux SFTP サーバーでホストされているリモート ディレクトリを指している場合でも、デュアルパネル インターフェイスは同一の運用モデルを提供します。
┌────────────────────────────────────────────────────────────────────────────────────────┐
│ ATBCMDER DUAL-PANEL GUI │
│ Left Panel (Active) Right Panel (Inactive / Target) │
├────────────────────────────────────────────────────────────────────────────────────────┤
│ │ │
│ [1] Local File System │ [2] Archive Virtual File System (VFS) │
│ file:///Users/brain/projects/ │ vfs:///Users/brain/backup.tar.gz/src/ │
│ Direct POSIX / APFS access │ In-place browse, F3 view, F4 live edit │
│ │ │
│ [3] Remote Network VFS (SFTP/SSH) │ [4] Remote Storage VFS (SMB / WebDAV) │
│ vfs://sftp://deploy@aws.prod/app/ │ vfs://smb://admin@truenas/Pool/Media/ │
│ Paramiko / SSH Keys / Keychain │ Kernel mount_smbfs / WebDAVClient3 │
│ │ │
├────────────────────────────────────────────────────────────────────────────────────────┤
│ UNIFIED VFS DISPATCH ENGINE (vfs://) │
│ FileSystemModel ➔ VFSManager ➔ SessionCache ➔ StreamCopyWorker / RepackWorker │
└────────────────────────────────────────────────────────────────────────────────────────┘
デュアル マトリックス VFS およびネットワークのチートシート¶
| アクション | macOS ショートカット | クラシック コマンダー キー | コマンドID | 説明 |
|---|---|---|---|---|
| ファイルをアーカイブに圧縮 | Alt+F5 / ⌥F5 |
Alt+F5 |
cm_PackFiles |
形式、圧縮、パスワードのオプションを含む [アーカイブ パック] ダイアログを開きます。 |
| アーカイブからファイルを抽出 | Alt+F9 / ⌥F9 |
Alt+F9 |
cm_ExtractFiles |
選択したアーカイブを衝突解決で解凍します。 |
| クイック ネットワーク接続 | メニュー: ネットワーク | cm_NetworkConnect |
cm_NetworkConnect |
高速アドホック接続ダイアログを開きます。 |
| 接続マネージャー | メニュー: ネットワーク | cm_ManageConnections |
cm_ManageConnections |
保存された接続プロファイルを使用して完全な CRUD ネットワーク マネージャーを開きます。 |
| FTP 接続 | Ctrl+S / ⌃S |
Ctrl+S |
cm_FTPConnect |
FTP 接続セッションをトリガーするためのクイック ショートカット。 |
| アーカイブ/フォルダーを入力してください | Enter / ⏎ |
Enter |
cm_Open |
.zip、.tar、.7z、またはリモート ディレクトリ内に直接移動します。 |
| 親フォルダーに昇順 | Backspace / ⌫ |
Backspace |
cm_GoToParent |
アーカイブまたはリモート ディレクトリから親レベルに戻ります。 |
| 仮想/リモート ファイルの表示 | F3 / Fn+F3 |
F3 |
cm_View |
リモート ファイルまたはアーカイブ ファイルを Universal Lister にストリーミングします。 |
| 仮想/リモート ファイルの編集 | F4 / Fn+F4 |
F4 |
cm_Edit |
エディタでファイルを開きます。 保存時に自動再パックまたはアップロードし直します。 |
| パネル間コピー/VFS | F5 / Fn+F5 |
F5 |
cm_Copy |
選択したアイテムをローカル、アーカイブ、またはネットワーク エンドポイント間でコピーします。 |
| バックグラウンド操作パネル | メニュー: 表示 | cm_OperationsPanel |
cm_OperationsPanel |
バックグラウンド転送キュー、速度、アクティブなスレッドを監視します。 |
2. 統一された vfs:// URI 抽象化¶
従来のファイル マネージャーは、リモート サーバーとアーカイブを二級市民として扱い、外部マウント ユーティリティ、一時抽出フォルダー、またはサードパーティの転送クライアントを必要とします。 ATBCmder は、すべてのファイル ソースを単一の明確に定義された URI 仕様に統合します。
2.1 仮想パスの構造¶
運用ドメインに応じて、vfs:// URI は次の 2 つの標準形式のいずれかになります。
-
仮想パスのアーカイブ:
vfs:///Users/brain/Documents/release_v1.7.zip/src/main.py -
外部プレフィックス:
vfs://は、パス トラバーサルをインターセプトするようにFileSystemModelに指示します。 - コンテナ パス:
/Users/brain/Documents/release_v1.7.zipは、ローカル ストレージ上の物理コンテナ アーカイブを識別します。 -
内部メンバー:
src/main.pyは、アーカイブ内にネストされた仮想リソースを正確に示します。 -
ネットワーク サーバー パス:
vfs://sftp://developer@staging.internal.net:2222/var/www/html/index.php vfs://smb://admin@192.168.1.50/StoragePool/Backups/2026/ vfs://webdavs://user@cloud.mycompany.com:443/remote.php/dav/files/user/ -
スキーム指定子: トランスポート ドライバーを識別します (
sftp、ftp、ftps、smb、webdav、webdavs、gdrive、dropbox)。 - 認証: ユーザー資格情報とターゲット ポートをエンコードします。
- リモート ターゲット: リモート ホスト上の絶対ディレクトリとファイル パスを解決します。
┌────────────────────────────────────────────────────────────────────────────────────────┐
│ VFS URI ROUTING IN ACTION │
├────────────────────────────────────────────────────────────────────────────────────────┤
│ │
│ Input URI: vfs://sftp://deploy@aws.infra:22/var/log/nginx/access.log │
│ │ │ │ │ └────────────────────► Remote Path │
│ │ │ │ └────────────────────────► Port (Default 22) │
│ │ │ └─────────────────────────────────► Host / Server │
│ │ └──────────────────────────────────────────► Username │
│ └─────────────────────────────────────────────────► Protocol Scheme │
│ │
│ Input URI: vfs:///Volumes/Data/Archive.zip/docs/manual.pdf │
│ │ │ └─────────────────► Archive Member │
│ │ └──────────────────────────► Physical Archive │
│ └─────────────────────────────────────────────────► Virtual Scheme │
└────────────────────────────────────────────────────────────────────────────────────────┘
2.2 シームレスなデュアルパネル統合¶
仮想パスは ATBCmder 内の標準ディレクトリ構造に準拠しているため、完全なデュアル パネル パリティを利用できます。
- タブ付き仮想ワークスペース: タブ 1 でリモート SFTP フォルダーを開き、タブ 2 で暗号化されたローカル ZIP アーカイブを開き、タブ 3 でローカル
~/Downloadsフォルダーを開きます。 - 方向コピー (
F5): ローカルのアクティブなパネルでファイルを選択し、F5を押して、非アクティブなパネルに表示されているリモート サーバーまたは圧縮アーカイブにファイルを直接アップロードします。 - ドラッグ アンド ドロップの相互運用性: 中間ステージングを行わずに、ローカル ディスク、ネットワーク共有、アーカイブ階層の間のパネル間で項目をドラッグします。
- インタラクティブなブレッドクラム バー: ブレッドクラム パス バーは、仮想 URI をクリック可能なセグメントに解析します。 親フォルダーまたはルート サーバー バッジをクリックすると、即座にツリーにジャンプします。
3. アーカイブ VFS: インプレース ナビゲーションと検査¶
ATBCmder でアーカイブを開くには、手動による解凍やサードパーティの解凍ツールは必要ありません。 サポートされているアーカイブを強調表示し、Enter を押す (またはダブルクリックする) だけです。 ATBCmder はアーカイブをインプレースにマウントし、パネルを高速仮想ディレクトリ ブラウザに変換します。
図 6.1: 複数ネストされた圧縮アーカイブ内を仮想フォルダーとして移動し、非圧縮サイズ、タイムスタンプ、およびサブディレクトリを表示します。
3.1 サポートされているアーカイブ形式¶
ATBCmder には、すべての業界標準のアーカイブおよび圧縮形式に対応するドライバーが組み込まれています。
| フォーマット | ファイル拡張子 | サポートを読む | 書き込み/パック | 暗号化のサポート |
|---|---|---|---|---|
| 郵便番号 | .zip |
はい | はい | 標準および AES-256 (pyzipper) |
| GZip Tarball | .tar.gz、.tgz |
はい | はい | POSIX 標準 tar ストリーミング |
| BZip2 Tarball | .tar.bz2、.tbz2 |
はい | はい | 高比率の bzip2 ブロック圧縮 |
| XZ タールボール | .tar.xz、.txz |
はい | はい | 高効率の LZMA2 圧縮 |
| プレーン TAR | .tar |
はい | はい | 非圧縮 UNIX テープ アーカイブ |
| 7-Zip | .7z |
はい | はい (py7zr 経由) |
LZMA / LZMA2 ソリッド圧縮 |
3.2 インプレース ナビゲーション ワークフロー¶
アーカイブ内を参照する場合:
- サブディレクトリを入力: アーカイブ内の任意のフォルダーで
Enterを押して、ネストされたツリーを調べます。 - 親に昇順 (
..):Backspace(⌫) を押すか、.. [Parent Directory]エントリをダブルクリックして昇順に移動します。 アーカイブのルートに到達したら、Backspaceを押すと、アーカイブ ファイルを含む物理ディレクトリに正常に戻ります。 - インスタント プレビュー (
F3/Fn+F3): アーカイブ内のドキュメント、画像、またはソース ファイルを強調表示し、F3を押します。 ATBCmder は、ターゲット ファイルを安全な一時サンドボックスに自動的に抽出し、それを Universal Lister 内でレンダリングします。 - 選択コピー (
F5/Fn+F5): 1 つまたは 2 つのファイルを取得するためだけにマルチギガバイトのアーカイブ全体を解凍するのではなく、必要な特定のメンバーを選択してF5を押します。 ATBCmder は、選択された項目のみを非アクティブなパネルに直接解凍します。
Note
アーカイブから個々のファイルをプレビューまたはコピーする場合、ATBCmder は要求されたファイル バイトのみをコンテナ ストリームから直接ストリーミングします。 選択されていない兄弟ファイルの解凍にディスク容量や時間を無駄にすることはありません。
4. ライブ再パッキング: アーカイブ内のインプレース編集¶
ATBCmder の最も強力なワークフローの 1 つは ライブ再パッキング です。 これまで、圧縮アーカイブ内にネストされた 1 つのファイルを変更するには、6 段階の面倒な手順が必要でした。つまり、アーカイブ全体を抽出し、ターゲット ファイルを見つけ、編集して保存し、ディレクトリを新しいアーカイブに再圧縮し、元のアーカイブを削除し、一時フォルダーをクリーンアップします。
ATBCmder を使用すると、アーカイブ内のファイルを標準のローカル ファイルを編集するのと同じくらい簡単に編集できます。
┌────────────────────────────────────────────────────────────────────────────────────────┐
│ LIVE REPACKING LIFECYCLE │
├────────────────────────────────────────────────────────────────────────────────────────┤
│ │
│ 1. User presses F4 on "config.json" inside "package.zip" │
│ │ │
│ ├──► ATBCmder extracts "config.json" to sandbox: /tmp/dc_repack_xyz/config.json │
│ └──► Opens internal EditorDialog with window title: "config.json — Editor" │
│ │
│ 2. User modifies file and presses Cmd+S (Save) │
│ │ │
│ ├──► Editor emits file_saved signal │
│ └──► RepackWorker checks original archive size vs ArchiveRepackWarningMB threshold │
│ │
│ 3. Atomic Repack Execution │
│ │ │
│ ├──► Writes modified stream to staging archive: /tmp/package.zip.tmp │
│ ├──► Validates container integrity via archive driver │
│ ├──► Atomic swap: os.replace("/tmp/package.zip.tmp", "/original/package.zip") │
│ └──► Refreshes active file panel and cleans up sandbox /tmp/dc_repack_xyz/ │
│ │
└────────────────────────────────────────────────────────────────────────────────────────┘
4.1 ステップバイステップ: アーカイブされた設定ファイルの編集¶
Enterを押して、アーカイブ (例:application_bundle.zip) に移動します。- 変更するファイルを見つけます (例:
settings.yaml)。 F4(Fn+F4) を押します。 ATBCmder はファイルを一時キャッシュに抽出し、組み込みエディタを起動します。- エディターで変更を加えます。
Cmd+S(⌘S) を押して保存します。Cmd+W(⌘W) またはEscを使用してエディターを閉じます。- ATBCmder の
RepackWorkerは、内部メンバーを自動的に更新し、更新された構造を一時ファイルに圧縮し、元のアーカイブをアトミックに置き換えて、パネル ビューを更新します。
Caution
大規模なアーカイブ安全ガード (ArchiveRepackWarningMB)
圧縮されたアーカイブを再パックするには、コンテナ ストリームを解凍して再エンコードする必要があります。 20 GB .tar.gz ビデオ アーカイブ内の 10 KB ファイルを変更すると、コンピューターは 20 GB のデータすべてを強制的に書き換えることになります。
偶発的なディスクのフリーズを防ぐために、ATBCmder には保護安全しきい値 (ArchiveRepackWarningMB、デフォルト: 100 MB (atbcmder.xml)) が含まれています。 この制限を超えるアーカイブ内のファイルを編集または削除しようとすると、ATBCmder は確認プロンプトを表示します。
「このアーカイブを変更するにはファイル全体を再パックする必要があり、時間がかかる場合があります。続行しますか?」
5. アーカイブの作成と抽出 (Alt+F5 / Alt+F9)¶
ATBCmder は、アーカイブの作成と抽出のための専用のバックグラウンド ワーカーを提供し、長時間実行される圧縮ジョブでもファイル パネルの応答性を維持します。
図 6.2: 宛先パス、形式の選択、圧縮レベル、パスワード暗号化を示す [アーカイブ パラメーター] ダイアログ (Alt+F5 / cm_PackFiles)。
5.1 ファイルの圧縮 (Alt+F5 / ⌥F5 / cm_PackFiles)¶
新しいアーカイブを作成するには:
- アクティブなパネルで、バンドルするファイルまたはディレクトリを選択します。
Alt+F5(⌥F5) を押すか、メニュー バーから ファイル ➔ パック... を選択します。- [ファイルのパック] ダイアログが表示されます。
- アーカイブ ファイルの作成: 宛先ファイルパス。 デフォルトでは、ATBCmder は、フォーカスされている項目にちなんで名付けられた非アクティブなパネルのディレクトリにアーカイブを配置することを提案します。
- アーカイブ形式:
ZIP、TAR、TAR.GZ、TAR.BZ2、TAR.XZ、または7Zから選択します。 - 圧縮レベル:
Store: ゼロ圧縮。 事前圧縮メディア (MP4、JPEG) のインスタント パッケージ化。Fast: CPU オーバーヘッドが低い。 素早い転送に最適です。Normal (Deflated): 速度と圧縮率のバランスが取れています (一般的な使用に推奨)。Maximum: 最高密度圧縮 (該当する場合は LZMA/Bzip2 を使用)。- パスワード (ZIP のみ): アーカイブを暗号化するための秘密のパスフレーズを入力します。
- [開始] をクリックします (または
Enterを押します)。 この操作は、進行状況バーとファイルごとのステータス インジケーターを備えたノンブロッキング バックグラウンド スレッドで実行されます。
軍事グレードの AES-256 パスワード暗号化¶
Standard ZIP encryption (legacy ZipCrypto) is cryptographically broken and vulnerable to plaintext dictionary attacks. ZIP アーカイブのパスワードを指定すると、ATBCmder は pyzipper (WZ_AES 標準を備えた pyzipper.AESZipFile) を利用した AES-256 暗号化 を利用します。 This ensures compatibility with macOS, WinZip, and 7-Zip while protecting sensitive data against brute-force decryption.
巨大なアーカイブをマルチボリューム セットに分割する¶
電子メールの添付ファイル、FAT32 ドライブ、またはファイル サイズの上限があるクラウド アップロード境界にアーカイブを配布する必要がある場合は、次の手順を実行します。
Alt+F5(cm_PackFiles) を使用してファイルをバンドルします。- 結果の
.zipまたは.tarアーカイブを強調表示し、Alt+F6(cm_FileSpliter) を介してファイル スプリッターをトリガーします。 - プリセット分割サイズ (
100 MB、4.7 GB DVD、CD 700 MB、またはカスタム バイト サイズなど) を選択します。 - ATBCmder は、CRC32 検証マニフェストとともに、番号付きの分割部分 (
archive.zip.001、archive.zip.002など) を生成します。 受信者は、cm_FileLinker(cm_Combine) を使用していつでも元のコンテナを再構築できます。
5.2 アーカイブの抽出 (Alt+F9 / ⌥F9 / cm_ExtractFiles)¶
アーカイブをディスクに抽出するには:
- アクティブなパネルで 1 つ以上のアーカイブを強調表示します。
Alt+F9(⌥F9) を押すか、メニュー バーから ファイル ➔ 抽出... を選択します。- [ファイルの抽出] ダイアログが表示されます。
- 抽出するアーカイブ: 選択したコンテナーのソース パス。
- ディレクトリに抽出: 宛先ディレクトリ (デフォルトは非アクティブなパネル)。
- コンテンツのプレビュー: アーカイブ メンバーをリアルタイムでロードする対話型リスト ボックス。
- パスワード: パスワードで保護されたアーカイブの入力フィールド。
- [開始] をクリックします。 ターゲット ファイルが宛先フォルダーに既に存在する場合、ATBCmder はワーカーを一時停止し、対話型の衝突ダイアログを表示します。
- 上書き: 競合する宛先ファイルを置き換えます。
- スキップ: 既存のファイルをそのままにして次の項目に進みます。
- すべて上書き: 後続の競合をすべてサイレントに上書きします。
- すべてスキップ: 既存の宛先ファイルをすべて自動的にバイパスします。
- キャンセル: 抽出プロセスを安全に停止します。
6. リモートネットワーク VFS: プロトコルとリモートストレージ¶
ATBCmder には、デュアルパネル ワークスペース内でリモート サーバーを直接マウント、参照、操作できるマルチプロトコル ネットワーク クライアント エンジンが含まれています。
図 6.3: ライブ ファイル属性、所有権パーミッション、およびデュアルパネル転送を使用して、安全な SFTP 経由でリモート Linux サーバー ディレクトリを参照します。
図 6.4: サポートされているネットワーク接続タイプ: FTP/FTPS、セキュア SFTP、WebDAV クラウド ストレージ、および SMB ネットワーク共有。
6.1 サポートされているネットワークプロトコル¶
| プロトコルスキーム | デフォルトのポート | トランスポート層 | 認証モード | 最適な用途 |
|---|---|---|---|---|
sftp:// |
22 |
SSH-2 (パラミコ) | パスワード、SSH キー (id_rsa、id_ed25519) |
Linux サーバー、クラウド インスタンス、ステージング ホスト |
ftp:// |
21 |
プレーン RFC 959 | 匿名、クリアテキストのユーザー名とパスワード | 従来の Web ホスティング、ローカル ラボ デバイス |
ftps:// |
990 |
TLS 暗号化 FTP | SSL/TLS を使用したユーザー名とパスワード | 安全な商用 FTP サーバー |
smb:// |
445 |
CIFS / SMB3 | Windows NT / Kerberos / ローカル アカウント | Windows 共有、NAS アプライアンス、Samba サーバー |
webdav:// |
80 |
HTTP WebDAV | 基本認証、ダイジェスト認証 | Web サーバー、ローカル ネットワーク ストレージ |
webdavs:// |
443 |
HTTPS WebDAV | SSL 暗号化ベーシック / ダイジェスト認証 | Nextcloud、ownCloud、商用クラウド ストレージ |
gdrive:// |
443 |
Google ドライブ API | OAuth2 トークン認証 | Google Drive クラウドドライブと共有フォルダー |
dropbox:// |
443 |
Dropbox API v2 | OAuth2 トークン認証 | Dropbox 個人およびチームのクラウドフォルダー |
dropbox:// |
443 |
Dropbox API v2 | OAuth2 トークン認証 | Dropbox 個人およびチームのクラウドフォルダー |
6.2 プロトコルの機能と詳細¶
SFTP (SSH ファイル転送プロトコル)¶
業界標準の paramiko SSH エンジンを活用した ATBCmder の SFTP ドライバーは、ポート 22 上で暗号化されたトンネルを確立します。
- ホスト キーの安全性 (
WarningPolicy): 厳格なセキュリティ要件に従って、ATBCmder はローカルの~/.ssh/known_hostsファイルを自動的に参照します。 既知のホストに接続する場合、ホスト キーは暗号的に検証されます。 不明なサーバーに遭遇した場合、ATBCmder は予期せぬ公開キーを黙って信頼するのではなく、安全性の警告を発します。 - SSH キー認証: 標準のパスワード認証に加えて、ATBCmder は SSH 秘密キー ファイル (
~/.ssh/id_rsa、~/.ssh/id_ed25519) をサポートします。 - UNIX 属性マッピング: リモート 8 進ファイル モード (
chmod)、ユーザー/グループの所有権文字列、および正確な POSIX 変更タイムスタンプを保持します。
FTP および FTPS (明示的/暗黙的 SSL)¶
Python の ftplib によって駆動される FTP ドライバーは以下をサポートします。
- パッシブ モード (PASV): デフォルトで有効になっており、制限的な NAT ルーターやコンシューマー ファイアウォールを介した信頼性の高い接続が保証されます。
- 設定可能なエンコーディング:
UTF-8、ISO-8859-1、GB18030、およびWindows-1252文字セットを切り替えることができるようにすることで、非 ASCII ファイル名の表示の問題を解決します。
SMB / Samba (Windows 共有および NAS アプライアンス)¶
転送速度が遅いという単純なユーザー空間の Python SMB ライブラリとは異なり、ATBCmder はハイブリッド アーキテクチャを採用しています。
- macOS ネイティブ カーネル アクセラレーション (
mount_smbfs): macOS では、ATBCmder のSambaMounterは Apple のネイティブ/sbin/mount_smbfsサブシステムを利用します。 リモート共有を macOS VFS ツリー (/Volumes/または分離されたマウント ディレクトリ) に直接マウントし、ハードウェア アクセラレーションによる SMB3 読み取り/書き込みスループットを完全に解放します。 - 既存のマウント検出: macOS Finder またはシステム スクリプトがターゲット SMB 共有をすでにマウントしている場合、ATBCmder は OS
mountテーブルからアクティブなマウントポイントを自動的に検出し、即座にそこに移動し、冗長なネットワーク接続を回避します。
Important
SMB 共有名の要件 SMB サーバーは、裸のホスト名レベルでは参照できません。 SMB URI には、パスにターゲット共有名またはエクスポート名を含める必要があります**。
- ❌ 無効:
vfs://smb://nas.local/ - ✅ 有効:
vfs://smb://nas.local/StoragePoolまたはvfs://smb://192.168.1.100/Media
WebDAV & WebDAVS (Nextcloud / クラウドストレージ)¶
webdavclient3 に基づいて構築されたこのドライバーは、最新のクラウド ストレージ ソリューションとの双方向ファイル同期を提供します。
- SSL 証明書検証: プライベート ホームラボ セットアップでの自己署名証明書の上書きトグルにより、パブリック WebDAVS ホストの厳密な SSL 証明書検証をサポートします。
- 再帰的ディレクトリ作成 (
makedirs): 一括アップロード操作中に、不足しているネストされたリモート ディレクトリ パスを自動的に作成します。
6.3 Google ドライブ クラウドストレージ:設定ガイド¶
Web ブラウザでの Google ドライブの管理は、大容量ファイルのアップロードや多階層フォルダーの整理時に動作が遅く感じられることがよくあります。さらに、公式の Google ドライブ デスクトップ アプリは、クラウド フォルダー全体をローカルの Mac SSD に全量同期しようとするため、貴重なストレージ容量を圧迫します。
ATBCmder は、Google ドライブをライブ仮想ドライブ (gdrive://) として直接マウントすることでこの課題を解決します。デュアルパネル インターフェース内でリモート フォルダーを直接参照し、F3 でクラウド ファイルを即座にプレビューし、F5 で Mac と Google ドライブ間で高速双方向コピーを行えます——クラウド ドライブ全体をローカルにダウンロードする必要は一切ありません。

図 6.5: 接続マネージャーで OAuth2 クライアント資格情報を構成して Google ドライブに接続し、デュアルパネル ビューでローカル フォルダーと並べてクラウド ファイルを参照。
なぜ「クライアント ID」と「クライアント シークレット」が必要なのですか?¶
プライバシーとセキュリティを保護するため、Google はサードパーティのデスクトップ アプリが Google アカウントのパスワードを直接要求することを禁止しています。代わりに OAuth 2.0 認証 が使用されます。
Google Cloud Console で独自の無料 OAuth 資格情報を作成することにより:
- 100% プライベート&直接通信: データは Mac と Google 公式サーバー間で直接送受信されます。サードパーティや中間サーバーがファイルや認証情報を閲覧することは一切ありません。
- 専用の速度とクォータ: 他のユーザーとレート制限を共有することなく、プライベートな API 帯域幅を専有できます。
- いつでも取り消し可能: Google アカウントのセキュリティ設定から、いつでもワンクリックで ATBCmder のアクセス権を取り消すことができます。
セットアップにかかる時間は3 分未満で、一度設定するだけで完了します!
ステップ 1: Google Cloud で無料の認証情報を作成する(所要時間 2 分)¶
- Web ブラウザで Google Cloud Console — 認証情報 を開き、Google アカウントでログインします。
- プロジェクトの選択または新規作成:
- ページ上部の組織 / プロジェクト ドロップダウンをクリックします。
- (組織向けのヒント:
aitobox.comなどの Google Workspace または Cloud Identity 組織をお持ちの場合は、プロジェクトが会社のドメイン下に作成されるよう、ドロップダウンでその組織を選択してください)。 - プロジェクトをまだ作成していない場合は、[新しいプロジェクト] をクリックし、任意の名前(例:
ATBCmder)を入力して [作成] をクリックします。 - Google Drive API を有効にする:
- 左側のサイドバーまたは上部検索バーから [有効な API とサービス](または [+ API とサービスの有効化])に移動します。
- Google Drive API を検索してクリックし、青い [有効にする] ボタンをクリックします。
- OAuth 同意画面の構成 (プロンプトが表示された場合):
- 資格情報を初めて作成する場合、同意画面の構成を求められることがあります:
- [外部 (External)] を選択して [作成] をクリックします。
- アプリ名(例:
ATBCmder)を入力し、サポート用および連絡先用のメールアドレスを入力します。 - アプリのドメイン で、アプリケーション ホームページ をサイト(例:
https://cmder.aitobox.com)に設定します。 - 承認済みドメイン で、ルート ドメイン(例:
aitobox.com)を追加します。 - 残りの画面を [保存して次へ] で進めます。
- デスクトップ認証情報の作成:
- [API とサービス] ➔ [認証情報] に戻ります。
- 画面上部の [+ 認証情報を作成] をクリックし、[OAuth クライアント ID] を選択します。
- アプリケーションの種類 ドロップダウンで、[デスクトップ アプリ (Desktop app)] を選択します。
- 名前 フィールドに
ATBCmder Desktop(または任意の名前)を入力します。 - [作成] をクリックします。
- キーのコピー:
- クライアント ID(
.apps.googleusercontent.comで終わる文字列)と クライアント シークレット を表示するダイアログが表示されます。 - 両方の文字列をコピーします(ブラウザ タブを開いたままにしておくか、一時保存します)。
カスタム ブランド:「アクセス権の付与先」(Access Granted To) の理解¶
Google アカウントのセキュリティ センター (myaccount.google.com/connections) で連携済みサードパーティ アプリを確認すると、ATBCmder の詳細カードが表示されます:
- アプリ名:
ATBCmder - アクセス権の付与先 (Access granted to): 例:
aitobox.comまたはoplist.org - ホームページ:
https://cmder.aitobox.com
なぜ Google は特定の組織名を表示するのですか?¶
「アクセス権の付与先」 (Access granted to) 行は、OAuth クライアント ID が作成された GCP プロジェクトを所有する Google Cloud 組織(または Google Workspace アカウント)に基づいて Google によって自動的に決定されます:
- サードパーティ組織(例:
oplist.org)下の Google Cloud プロジェクトでクライアント ID が作成された場合、Google は API クライアントの所有者を通知するためにそのドメインを表示します。 - プロジェクトが個人用 Google アカウントで作成された場合、Google は開発者の連絡先情報を表示します。
付与先組織を自社ドメイン(例: aitobox.com)に設定する方法¶
Google のアカウント セキュリティ ダッシュボードに自社のカスタム ドメイン(例: aitobox.com)を表示させたい場合:
- ドメイン組織配下にプロジェクトを作成:
- Google Cloud Console で、社内ドメインのアカウント(例:
admin@aitobox.com)でログインします。 - 上部の組織ドロップダウンで自社ドメイン(例:
aitobox.com)が選択されていることを確認してからプロジェクトを作成します。 - OAuth 同意画面でアプリ ドメインを構成:
- [API とサービス] ➔ [OAuth 同意画面] に移動します。
- アプリケーション ホームページ を公式製品ページ(例:
https://cmder.aitobox.com)に設定します。 - 承認済みドメイン にルート ドメイン(例:
aitobox.com)を登録します。 - ユーザー サポート メール と デベロッパーの連絡先情報 をドメイン アドレスに設定します。
- 新しいデスクトップ アプリ クライアント ID を発行:
- [API とサービス] ➔ [認証情報] に移動し、デスクトップ アプリ タイプの新しい OAuth クライアント ID を作成します。
- ATBCmder でキーを更新して再認証:
- 新しいクライアント ID とクライアント シークレットを ATBCmder の接続マネージャーに貼り付け、[再認証...] をクリックします。
- これで、アカウント セキュリティ設定の付与先に自社ドメイン (
aitobox.com) が表示されます!
ステップ 2: ATBCmder に Google ドライブを追加する¶
キーを取得したら、ATBCmder への追加は数クリックで完了します:
- ATBCmder のメニュー バーから [ネットワーク] ➔ [接続マネージャー...] を開きます(または
cm_ManageConnectionsを実行)。 - 左下の
+ 新規ボタンをクリックして新しいプロファイルを作成します。 - 右側の 接続の詳細 フォームで:
- ラベル: わかりやすい名前(例:
Google Driveや仕事用ドライブ)を入力します。 - プロトコル: ドロップダウン メニューから
gdriveを選択します。 - クライアント ID: Google Cloud からコピーしたクライアント ID を貼り付けます。
- クライアント シークレット: Google Cloud からコピーしたクライアント シークレットを貼り付けます。
- (ヒント: シークレット フィールドのすぐ下にある青いヘルパー リンク
Create OAuth 2.0 credentials in Google Cloud Consoleをクリックして、いつでも Google Cloud にアクセスできます)。 - [認証](または [再認証...])ボタンをクリックします:
- ATBCmder が自動的にデフォルトの Web ブラウザを起動し、Google 公式のログイン ページを開きます。
- 重要なセキュリティ警告プロンプト(正常な動作です):
公開マーケットプレイス アプリではなく、独自の Google Cloud プロジェクトで作成したプライベート クライアント ID を使用しているため、Google は 「このアプリは Google で確認されていません」 / 「セキュリティ上のリスク」 という警告画面を表示します。
これは完全に正常であり安全です。 ブラウザでオプションを展開し([詳細 (Advanced)] をクリック)、「安全ではないページに移動 / 続行」 をクリックして認証を進めます。 - Google アカウントを選択し、要求された権限(Google ドライブへの読み取り/書き込みアクセス)を確認します。
- [続行 / 許可] をクリックします。
- 承認されると、ブラウザに成功メッセージが表示されます。ATBCmder に戻ると、ステータスが次のように更新されます:
✓ Authorized (your_account@gmail.com)!
Note
なぜ Google は「アプリが確認されていません」という警告を表示するのですか?
ブラウザに Google 公式認証ページが表示されると、アプリが確認されていないという警告が表示されます。これは、自作の OAuth 開発者認証情報における標準的な動作です。認証情報はご自身の Google Cloud Console で作成され、お客様のみがキーを保持しているため、アカウントとファイルは 100% 安全かつプライベートに保たれます。ブラウザで [詳細 (Advanced)] をクリックし、[続行] をクリックして認証を完了してください。
- 💾 保存 をクリックして接続をブックマークし、🔗 接続 をクリックします(または左側リストの接続をダブルクリック)。
- アクティブ パネルに新しいタブが開き、次のパスへナビゲートします: すべての Google ドライブ ファイルとフォルダーが目の前に展開されます!
ステップ 3: ローカル ドライブのように Google ドライブを操作する¶
接続すると、Google ドライブは通常のローカル フォルダーとまったく同じように動作します:
- 閲覧と瞬時プレビュー: ダブルクリックまたは
Enterでフォルダーを開きます。画像、PDF、コード ファイル、またはドキュメントを選択してF3を押すと、ローカルに保存することなくユニバーサル リスターで即座にストリーミング プレビューできます。 - クラウドへのアップロード (
F5): ローカル パネル(例:ダウンロードフォルダー)でファイルを選択し、F5を押して Google ドライブのリモート ディレクトリに直接アップロードします。 - ローカルへのダウンロード (
F5): Google ドライブ パネルでファイルを選択し、F5を押してローカルの対象フォルダーにダウンロードします。 - ドラッグ&ドロップ: マウスを使って、ローカル パネルと Google ドライブ パネルの間でファイルやフォルダーを自由にドラッグ&ドロップできます。
- 瞬時更新 (
F9/Ctrl+R): 共有ファイルが追加されたりモバイルで変更を加えた場合、F9(またはツールバーの更新ボタン)を押すだけで最新のクラウド変更を即座に取得できます。 - リアルタイム クラウド ストレージ メーター: ツールバー右側のステータス カプセルに、Google ドライブの空き容量がリアルタイムで表示されます(例:
259.7 GB free of 994.7 GB)。 - 複数アカウントの管理: 接続マネージャーで複数の Google ドライブ プロファイルを追加できます(例:
個人用ドライブと仕事用ドライブ)。左パネルにアカウント A、右パネルにアカウント B を開き、クラウド間で直接ファイルを転送することも可能です! - Secure Enclave によるハードウェア暗号化: クライアント シークレットと OAuth リフレッシュ トークンは、Apple の Secure Enclave に保護された macOS システム キーチェーン (
ATBCmder_VFS) に直接暗号化して保存されます。ディスク上に平文で保存されることはありません。
6.4 Dropbox クラウドストレージ:設定ガイド¶
Google ドライブと同様に、ATBCmder 内で直接 Dropbox にアクセスすることで、何百ギガバイトものクラウド ファイルをローカル Mac SSD に同期することなく、軽快にクラウド データをブラウズ・整理できます。
ATBCmder は Dropbox をライブ仮想ドライブ (dropbox://) として扱い、F3 での写真やドキュメントのプレビュー、F5 によるチャンク ストリーミング アップロード/ダウンロード、ツールバーでのリアルタイム クラウド ストレージ クォータ監視をサポートします。
なぜ「App Key」と「App Secret」が必要なのですか?¶
プライバシーとセキュリティを保護するため、Dropbox はサードパーティのデスクトップ ツールが Dropbox アカウントのパスワードを要求・保存することを許可していません。代わりに OAuth 2.0 認証 が使用されます。
公式の Dropbox App Console で独自の無料開発者用 App Key と App Secret を作成することにより:
- 100% プライベート&直接通信: データは Mac と Dropbox 公式サーバー間で直接送受信されます。サードパーティ プロキシや中間サーバーがファイルを閲覧することは一切ありません。
- 専用の速度とクォータ: 他のユーザーとレート制限を共有することなく、プライベートな API 帯域幅を利用できます。
- いつでも取り消し可能: Dropbox のアカウント セキュリティ設定から、いつでもワンクリックで ATBCmder のアクセス権を取り消すことができます。
セットアップにかかる時間は2 分未満で、一度設定するだけで完了します!
ステップ 1: Dropbox App Console でアプリを作成する¶
- Web ブラウザで Dropbox App Console を開き、Dropbox アカウントでログインします。
- 右上の青い [Create app] ボタンをクリックします。
- 下のスクリーンショットに従ってアプリ設定を構成します:

図 6.6: Dropbox App Console で Scoped access と Full Dropbox アクセス権を持つ新しいアプリを作成。
- 1. Choose an API: Scoped access を選択します。
- 2. Choose the type of access you need: Full Dropbox(Dropbox 内のすべてのファイルとフォルダーへのアクセス)を選択します。
(注: ATBCmder に単一の分離されたサンドボックス フォルダーのみにアクセスさせたい場合は、代わりに「App folder」を選択できます)。 - 3. Name your app: アプリケーションの一意の名前(例:
ATBCmderまたはATBCmder-YourName)を入力します。 - I agree to Dropbox API Terms and Conditions チェックボックスをオンにします。
- 右下の青い [Create app] ボタンをクリックします。
ステップ 2: リダイレクト URI を設定してキーをコピーする(Settings タブ)¶
アプリが作成されるとダッシュボードに移動します。上部の [Settings] タブをクリックします。

図 6.7: ループバック リダイレクト URI (http://127.0.0.1:53682/callback) を設定し、App key と App secret をコピー。
- OAuth 2 リダイレクト URI の設定:
- OAuth 2 セクションまで下にスクロールします。
- Redirect URIs 入力フィールドを見つけます。
-
次の正確な URL を入力または貼り付けます:
-
入力ボックスの横にある [Add] ボタンをクリックします。
(なぜこれが必要か: ATBCmder は認証中にポート 53682 で安全なローカル ループバック リスナーを実行します。この URI を登録することで、Dropbox はワンクリックで認証を安全に ATBCmder に戻すことができます)。 - パブリック クライアントの許可 (PKCE):
- Allow public clients (Implicit Grant & PKCE) のドロップダウンが Allow(またはデフォルト)に設定されていることを確認します。
- App Key と App Secret のコピー:
- Settings タブの上部近くにある App key を見つけてコピーします。
- そのすぐ下にある App secret を見つけ、Show リンクをクリックして秘密キーをコピーします。
(このブラウザ ウィンドウを開いたままにするか、キーを一時保存します。ステップ 4 で ATBCmder に貼り付けます)。
ステップ 3: 必要な権限を構成する(Permissions タブ)¶
次に、アプリ設定ページの上部にある [Permissions] タブをクリックします。

図 6.8: Permissions タブで files.metadata.read/write や files.content.read/write などの必要なアクセス許可を選択。
- Account Info 配下:
account_info.read: Dropbox アカウントに関する基本情報を表示(デフォルトでチェック済み。ATBCmder が接続時にアカウントのメール アドレスを自動検出して表示できるようになります)。- Files and folders 配下で、次のチェックボックスが有効になっていることを確認します:
files.metadata.write: Dropbox ファイルおよびフォルダーに関する情報を表示および編集。files.content.write: Dropbox ファイルおよびフォルダーのコンテンツを編集(ファイルのアップロードと変更)。files.content.read: Dropbox ファイルおよびフォルダーのコンテンツを表示(ファイルのダウンロードと閲覧)。
Note
なぜ files.metadata.read はグレーアウトして選択できないのですか?
上のスクリーンショットでは、files.metadata.read(Dropbox ファイルおよびフォルダーに関する情報の表示)のボックス内に薄いグレーのチェックマークが付いており、手動で切り替えることができません。
これは完全に正常な動作です!
Dropbox の権限階層では、書き込み権限(files.metadata.write および files.content.write)は読み取りアクセスを厳密に必要とします。files.metadata.write または files.content.read/write をチェックすると、Dropbox は自動的に files.metadata.read を有効にしてロックし、誤ってチェックが外れないようにします。権限はすでにアクティブになっています!
Important
重要: ページ下部の「Submit」ボタンを必ずクリックしてください!
Permissions タブでチェックボックスをオンにしても、Dropbox は変更を自動的に保存しません!
必ず Permissions ページの一番下までスクロールし、青い [Submit] ボタンをクリックしてください。
[Submit] をクリックせずにタブを閉じたり Settings タブに戻ったりすると、権限の変更は破棄されます!
ステップ 4: ATBCmder に Dropbox を追加してワンクリック認証¶
Dropbox アプリが適切に設定されたら、ATBCmder への追加は数クリックで完了します:
- ATBCmder で、上部メニュー バーから [ネットワーク] ➔ [接続マネージャー...] を開きます(または
cm_ManageConnectionsを実行)。 - 左下の
+ 新規ボタンをクリックして新しいプロファイルを作成します。 - 右側の 接続の詳細 フォームで:
- ラベル: わかりやすい名前(例:
My Dropboxやチーム Dropbox)を入力します。 - プロトコル: ドロップダウン メニューから
dropboxを選択します。 - App Key: Dropbox の Settings タブからコピーした App key を貼り付けます。
- App Secret: Dropbox の Settings タブからコピーした App secret を貼り付けます。
- (ヒント: シークレット フィールドのすぐ下にあるヘルパー リンク
Create app in Dropbox App Consoleをクリックして、いつでも開発者コンソールにアクセスできます)。 - [ブラウザでログイン...](または [認証])ボタンをクリックします:
- ATBCmder が自動的にデフォルトの Web ブラウザを開き、公式の Dropbox 同意ページを表示します。
- 要求されたアクセス許可を確認し、[許可 (Allow)] をクリックします。
- 承認されると、ブラウザで成功が確認されます。ATBCmder に戻ると、ステータスが次のように更新されます:
✓ Authorized (your_account@email.com)! - 💾 保存 をクリックして接続をブックマークし、🔗 接続 をクリックします(または左側リストの接続をダブルクリック)。
- アクティブ パネルに新しいタブが開き、次のパスへナビゲートします: すべての Dropbox ファイルとフォルダーが目の前に展開されます!
よくある問題とトラブルシューティング¶
Warning
トラブルシューティング:「Your app is not permitted to access this endpoint because it does not have the required scope 'files.metadata.read'」
正常に接続できたものの、フォルダーの読み込み時やファイルのコピー時にこのエラーが発生した場合の原因と解決策は以下のとおりです:
- なぜ発生するのか?
- Submit をクリックしましたか? Dropbox の Permissions タブで権限をチェックしたが、下部までスクロールして青い [Submit] ボタンをクリックするのを忘れた場合、Dropbox は変更を保存していません。
- トークン スナップショットの動作: Dropbox OAuth 2.0 では、認証トークンは認証が付与された瞬間に存在した権限のみを保持します。権限を有効にする前や Submit をクリックする前に ATBCmder を認証した場合、macOS キーチェーン内の既存のトークンには新しいスコープが含まれていません。
- 修正方法:
- Dropbox App Console ➔ [Permissions] タブに移動し、チェックボックスがオンになっていることを確認して、一番下までスクロールして [Submit] をクリックします。
- ATBCmder ➔ [ネットワーク] ➔ [接続マネージャー...] に戻り、Dropbox 接続を選択して [再認証...] ボタンをクリックします。
- ブラウザで [許可] をクリックして、更新されたすべての権限を持つ新しいトークンを発行します。
- 再度 [接続] をクリックすれば完了です!
ステップ 5: ローカル ドライブのように Dropbox を操作する¶
接続すると、Dropbox は高速なローカル ドライブのように動作します:
- デュアルパネル コピー (
F5): ローカル パネル(例: Mac の書類やダウンロード)でファイルを選択し、F5を押して Dropbox に直接アップロードします。またはリモート ファイルを選択してF5を押してダウンロードします。 - チャンク ストリーミング転送: リアルタイムの進行状況インジケーターを備えた非ブロック チャンク ストリーミング セッションを使用し、システム メモリを圧迫することなく数ギガバイトのビデオやアーカイブ ファイルをスムーズに処理します。
- 瞬時プレビュー (
F3): Dropbox 上の画像、PDF、Markdown、またはテキスト ファイルを選択し、F3を押すと、ディスクに保存することなくユニバーサル リスターで即座に確認できます。 - フォルダー作成 (
F7):F7を押して新しいリモート ディレクトリを作成します。再帰的ディレクトリ作成により、不足している親フォルダーが自動的に作成されます。 - ドラッグ&ドロップ: マウスを使って、ローカル パネルと Dropbox パネルの間でファイルやフォルダーをドラッグ&ドロップできます。
- リアルタイム クラウド ストレージ メーター: 残りの Dropbox 容量がツールバー右側にリアルタイムで表示され(例:
1.8 GB free of 2.0 GB)、残りの容量を一目で確認できます。 - 瞬時更新 (
F9/Ctrl+R): 他のデバイスで行われたリモートの変更を取得したり、キーストローク 1 つでストレージ クォータを同期できます。 - ハードウェア レベルのセキュリティ: OAuth リフレッシュ トークンと資格情報は、Apple の Secure Enclave に支えられた macOS システム キーチェーン (
ATBCmder_VFS) に直接暗号化して保存されます。
6.3 App Store サンドボックス クラウド ストレージ (OneDrive、Google Drive、iCloud)¶
ATBCmder の Mac App Store サンドボックス ビルドでは、サードパーティのクラウド同期ディレクトリ (Microsoft OneDrive、デスクトップ用 Google Drive、Dropbox、iCloud Drive など) へのファイルシステムの直接アクセスは、Apple のサンドボックス アーキテクチャによって規制されています。
- セキュリティ スコープのブックマーク:
~/Library/CloudStorage/OneDrive-*、~/Library/CloudStorage/GoogleDrive-*、または~/Library/Mobile Documents/com~apple~CloudDocs/にある同期されたクラウド ディレクトリには、セキュリティ スコープのアクセス トークンが必要です。 - ドライブ スイッチャーとパスの統合: ATBCmder は、設定されたローカル クラウド ディレクトリを自動的に検出し、ドライブ スイッチャー (
Alt+D/⌥D)、ドライブ ボタン バー、パスのパンくずリストに表示します。 - 永続的な権限付与: クラウド ディレクトリを初めて開くとき、macOS は認証シートを表示します。 ATBCmder を選択すると、暗号化セキュリティを対象としたブックマークがユーザー設定に保存され、アプリケーションの再起動後も認証ダイアログを繰り返すことなく、シームレスで中断のない読み取り/書き込みアクセスが許可されます。
7. クイック接続と接続マネージャー¶
ATBCmder は、リモート ホストに接続するための 2 つの柔軟なメカニズムを提供します。高速な一時セッション用の クイック接続、および永続的な分類されたサーバー ブックマーク用の 接続マネージャーです。
7.1 クイック接続 (cm_NetworkConnect)¶
永続的な構成を乱雑にせずにサーバーにすばやくアクセスする必要がある場合:
- [ネットワーク] ➔ [クイック接続...] を選択します (またはコマンド
cm_NetworkConnectを実行します)。 - 軽量接続プロンプトが表示されます。
- プロトコル:
sftp、ftp、ftps、smb、webdav、webdavs、gdrive、またはdropboxを選択します。 - ホストとポート: サーバー アドレスを入力します (ポートはデフォルト値を自動入力します)。
- ユーザー名とパスワード: 接続資格情報を入力します。
- リモート パス: 開始リモート ディレクトリ (デフォルト:
/)。 - パスワードを記憶する: 単一セッションの一時接続の場合は、チェックを外したままにします。
- [接続のテスト] をクリックして、接続する前にネットワーク ハンドシェイクと資格情報を確認します。
- [接続] をクリックします。 ATBCmder は、リモート サーバーを指す新しいタブをアクティブ パネルに即座に開きます。
7.2 接続マネージャー (cm_ManageConnections)¶
定期的にアクセスするサーバーには、接続マネージャー が完全な構成ダッシュボードを提供します。
┌────────────────────────────────────────────────────────────────────────────────────────┐
│ CONNECTION MANAGER DIALOG │
├──────────────────────────────┬─────────────────────────────────────────────────────────┤
│ Saved Connections │ Connection Details │
│ ┌────────────────────────┐ │ Label: [ Staging Web Server (AWS) ] │
│ │ 🔐 AWS Staging Server │ │ Protocol: [ SFTP (port 22) ▼ ] │
│ │ 🖧 Synology Office NAS │ │ Host: [ ec2-54-210-10-2.compute.amazonaws.com] │
│ │ 🌐 Nextcloud Personal │ │ Port: [ 22 ] │
│ │ 📂 Legacy Archive FTP │ │ Username: [ ubuntu ] │
│ │ │ │ Password: [ •••••••••••••••••• ] │
│ │ │ │ Remote Path: [ /var/www/production ] │
│ │ │ │ [✓] Remember password in macOS Keychain │
│ └────────────────────────┘ │ │
│ [➕ New] [⧉ Dup] [🗑 Del] │ [🔍 Test Connection] [💾 Save] [🔗 Connect] │
└──────────────────────────────┴─────────────────────────────────────────────────────────┘
サーバープロファイルの管理¶
- 新規作成 (
➕ New): 右側のフォームをクリアして、新しいサーバー構成を定義します。 - 複製 (
⧉ Duplicate): 選択した接続プロファイルのクローンを作成します。 同一のホスト構成で複数の環境 (開発、ステージング、実稼働) を管理する場合に最適です。 - 削除 (
🗑 Delete): 接続プロファイルを削除し、関連する資格情報をシステム キーチェーンから削除します。 - テスト接続 (
🔍 Test Connection): バックグラウンド ワーカー (ConnectionTestWorker) をディスパッチして、接続、認証、正常な切断を行い、別の場所に移動することなくサーバーの応答性を確認します。 - 接続 (
🔗 Connect): 保留中のフィールド編集を保存し、リモート セッションを確立し、リモート ディレクトリを新しいアクティブなパネル タブにロードします。
動的保存された接続メニュー¶
保存された接続は、上部のメニュー バーの ネットワーク ➔ 保存された接続 に自動的に統合されます。 ブックマークされたサーバーは、ワンクリックでマウントできます。
Network ➔ Saved Connections ➔ 🔐 AWS Staging ServerNetwork ➔ Saved Connections ➔ 🖧 Synology Office NAS
8. 認証情報の安全性とキーチェーンの統合¶
ファイル マネージャーの構成ファイルは、資格情報を収集するマルウェアの主なターゲットです。 従来のファイル マネージャーの多くは、ユーザーのホーム ディレクトリにあるプレーンテキストの XML または INI 設定ファイルに FTP/SFTP パスワードを保存します。
ATBCmder は、クリアテキスト認証情報のストレージがゼロであることを保証します。
8.1 セキュリティアーキテクチャ¶
┌────────────────────────────────────────────────────────────────────────────────────────┐
│ CREDENTIAL STORAGE ARCHITECTURE │
├────────────────────────────────────────────────────────────────────────────────────────┤
│ │
│ Connection Configuration XML Apple System Keychain │
│ (~/.config/atbcmder/atbcmder.xml) (service: "ATBCmder_VFS") │
│ ┌─────────────────────────────────────┐ ┌──────────────────────────────────┐ │
│ │ <connection> │ │ Label: "AWS Staging Server" │ │
│ │ <label>AWS Staging</label> │ │ Key: Encrypted Secret │ │
│ │ <scheme>sftp</scheme> │ │ Access: Controlled by macOS │ │
│ │ <host>aws.infra.net</host> │ │ Hardware Security Enclave│ │
│ │ <user>deploy</user> │ └──────────────────────────────────┘ │
│ │ <password></password> │ ▲ │
│ │ </connection> │ │ │
│ └─────────────────────────────────────┘ │ │
│ ▲ │ │
│ │ Password stripped on save │ Stored via │
│ └─────────────────── ConnectionManager ─────────────────────┘ Python keyring │
│ │
└────────────────────────────────────────────────────────────────────────────────────────┘
- クリアテキスト XML スクラビング: 接続プロファイルがディスク (
atbcmder.xml) にシリアル化されるたびに、ConnectionManager.save()ルーチンは、書き込み前に明示的にd["password"] = ""を強制します。 たとえ権限のない第三者が構成 XML を検査したとしても、サーバーのパスワードが公開されることはありません。 - macOS システム キーチェーンの暗号化: [パスワードを記憶する] チェックボックスが選択されている場合、パスワードは、システム
keyringAPI を介して、安全なサービス識別子ATBCmder_VFSで macOS キーチェーンに直接保存されます。 キーの導出と保管は、Apple のハードウェア Secure Enclave によって保護されています。 - 一時的なインメモリ セッション: [パスワードを記憶する] がチェックされていない場合、資格情報は現在のアプリケーション ライフサイクル中動的メモリ (
VFSSessionCache) に厳密に保持され、ATBCmder が終了した瞬間に消去されます。
9. ⚡ プロのヒント: 高性能のリモート操作¶
ヒント 1: ノンブロッキング バックグラウンド転送キュー (cm_OperationsPanel)¶
リモート サーバー間で大きなディレクトリをコピーする場合、または SFTP 経由でマルチギガバイトの ISO をダウンロードする場合は、ワークスペースを決してフリーズしないでください。 ATBCmder でのすべてのネットワーク ファイル操作は、バックグラウンド オペレーション キューと自動的に統合されます。
F5を押して転送を開始し、バックグラウンド をクリックします (または自動的にキューに入れます)。- 表示 ➔ 操作パネル (
cm_OperationsPanel) を介して操作パネルを開き、ライブ帯域幅グラフ、ファイルごとのバイト数、および残りの転送推定値を監視します。 - 両方のパネルでローカル ファイルの参照を続けながら、キューに入れられたネットワーク転送を一時停止、再開、または並べ替えることができます。
ヒント 2: 異種プロトコル間でのストリーム コピー¶
ATBCmder の stream_copy_file エンジンは、サーバー間の直接ストリーミングを可能にします。 左側のパネルの SFTP サーバーから右側のパネルの SMB ネットワーク共有にフォルダーをドラッグすると、次のようになります。
- ATBCmder は、再アップロードする前にディレクトリ全体をローカル Mac ハード ドライブにダウンロードしません**。
- データはメモリ内のバッファ リングを通じてチャンク化され、ソース ソケットからターゲット ソケットに直接バイトをストリーミングします。 これにより、ローカル ディスクの磨耗がなくなり、利用可能なローカル SSD 容量を超える転送に対応できます。
ヒント 3: ネットワークのキープアライブと接続ドロップの防止¶
ステートフル ネットワーク ファイアウォールと NAT ゲートウェイは、60 ~ 300 秒間の非アクティブ状態が続くと、アイドル状態の TCP 接続を頻繁に切断します。 大規模なリモート ツリーを参照するときにセッションが切断されないようにするには、次の手順を実行します。
- ATBCmder の
BaseNetworkVFSレイヤーは、アイドル状態の接続間でセッション ハートビートを自動的に維持します。 - 一時的なネットワーク切断が発生した場合、内部
_retry()メカニズムは、接続障害を報告する前に、指数バックオフ (2^attempt秒間隔) を使用して最大 3 回の再試行を実行します。
ヒント 4: 自動アップロード ライフサイクルを使用したリモート ファイルの編集¶
nginx.conf または Python スクリプトをリモート サーバー上で直接編集する必要がありますか?
- SFTP または WebDAV パネル ビューでリモート ファイルを強調表示します。
F4(Fn+F4) を押します。- ATBCmder はファイルを分離された一時サンドボックス (
/tmp/) にダウンロードし、組み込みエディターで開きます。 Cmd+S(⌘S) を押すたびに、ATBCmder は_upload_vfs_temp()をトリガーし、更新されたファイルをリモート サーバーに非同期的にストリーミングして戻し、ステータス バーに確認メッセージを点滅させます。- エディターを閉じると、一時ファイルは
/tmp/から安全にリンク解除されます。
10. システムとセキュリティの警告¶
Warning
SSH ホスト キー検証の不一致
SFTP サーバーがホスト キーを再生成する場合 (OS の再インストール後など)、または中間者によるネットワーク傍受が試みられた場合、ATBCmder はサーバー キーが ~/.ssh/known_hosts に登録されているフィンガープリントと一致しないことを検出します。
サーバーの公開キーのフィンガープリントをシステム管理者に個別に確認することなく、信頼できないパブリック Wi-Fi ネットワーク上のホスト キーの警告をバイパスしないでください。
Important
大きなリモート ファイル用の一時キャッシュ スペース
リモート VFS サーバーに保存されているマルチギガバイト ファイルを表示 (F3) または編集 (F4) する場合、ATBCmder はターゲット アイテムをローカル /tmp ボリュームにストリーミングします。 大規模なリモート ビデオ ファイルやデータベース ファイルを開く前に、Mac のプライマリ APFS コンテナに十分な空きストレージ容量があることを確認してください。
Caution
リモート ネットワーク共有のマウントを解除
macOS mount_smbfs 経由でマウントされた SMB 共有の場合、切断せずにネットワーク接続を終了すると、/Volumes/ に古いマウント ハンドルが残る可能性があります。 ラップトップを閉じたり、Wi-Fi ネットワークを変更したりする前に、必ずパネル ドライブ メニューを使用するか、切断アクションを行ってください。
11. マスターデュアルマトリックスキーボードリファレンステーブル¶
| カテゴリー | アクションの説明 | macOS ショートカット | クラシック コマンダー キー | コマンドID |
|---|---|---|---|---|
| アーカイブ操作 | 選択したファイル/フォルダーをパックする | Alt+F5 / ⌥F5 |
Alt+F5 |
cm_PackFiles |
| アーカイブ操作 | 選択したアーカイブを抽出する | Alt+F9 / ⌥F9 |
Alt+F9 |
cm_ExtractFiles |
| アーカイブ操作 | アーカイブ コンテナ内を参照 | Enter / ⏎ |
Enter |
cm_Open |
| アーカイブ操作 | 親ディレクトリへのアーカイブを終了 | Backspace / ⌫ |
Backspace |
cm_ChangeDirToParent |
| アーカイブ操作 | アーカイブ内のファイルをプレビュー | F3 / Fn+F3 |
F3 |
cm_View |
| アーカイブ操作 | アーカイブ内のファイルを編集 (ライブ) | F4 / Fn+F4 |
F4 |
cm_Edit |
| アーカイブ操作 | 選択した項目のみを抽出 | F5 / Fn+F5 |
F5 |
cm_Copy |
| アーカイブ操作 | 大規模なアーカイブをボリュームに分割 | Alt+F6 / ⌥F6 |
Alt+F6 |
cm_FileSpliter / cm_Split |
| アーカイブ操作 | 分割されたボリュームのピースを再組み立てする | メニュー: ファイル ➔ ファイルを結合 | — | cm_FileLinker / cm_Combine |
| ネットワーク接続 | クイックネットワーク接続ダイアログ | メニュー: ネットワーク | — | cm_NetworkConnect |
| ネットワーク接続 | ネットワーク接続を管理する | メニュー: ネットワーク | — | cm_ManageConnections |
| ネットワーク接続 | FTP サーバーへのクイック接続 | Ctrl+S / ⌃S |
Ctrl+S |
cm_FTPConnect |
| ネットワーク接続 | リモート ネットワーク共有を切断します | メニュー: ネットワーク | — | cm_NetworkDisconnect |
| 転送管理 | オペレーション転送キューを開く | メニュー: 表示 | — | cm_OperationsPanel |
| 転送管理 | アクティブなキューを一時停止/再開する | Space (キュー内) |
Space |
— |
システムリソースを監視し、ディスク使用量を分析し、安全にキャッシュをクリーンアップする準備はできましたか?