コンテンツにスキップ

認証と SSH Agent

安全な接続認証は PhanTerm の中核です。デュアルトラックの認証情報保存メカニズムとネイティブの Agent 統合を採用し、お客様の認証情報を常に安全に保ちます。

メイン接続パスワード、踏み台サーバーのパスワード、または SSH 秘密鍵の保護パスフレーズのいずれであっても、PhanTerm は厳重なローカル暗号化保護を提供いたします。

  • Windows ユーザー様: バージョン 0.13.0 へのアップデート後、PhanTerm はお客様の認証情報を自動的に処理し、より高度な Windows CNG (Cryptography Next Generation) 暗号化保護へと移行いたします。このプロセスは完全にバックグラウンドで行われ、従来の Windows Credential Manager よりも強固な隔離と安全性を提供いたします。
  • macOS / Linux ユーザー様: PhanTerm はお客様のオペレーティングシステムのシステムキーリング (System Keyring) にパスワードを優先的に保存いたします。

お客様の認証情報は常にローカルに安全に保存されます パスワードや認証情報がクラウドにアップロードされることは絶対にありません。 上記のシステムレベルの鍵管理が利用できない場合(ヘッドレスの Linux サーバーなど)、PhanTerm は安全にフォールバックし、ローカルの強力なランダムキーを使用した AES-256-GCM 暗号化によってローカルの connections.yaml に暗号文を保存しますのでご安心ください。

接続を作成または編集する際、Auth TypeKey に設定し、秘密鍵ファイルのパス(例: ~/.ssh/id_ed25519)を選択できます。PhanTerm はログイン認証のためにその鍵を安全に読み取ります。パスワードで保護された秘密鍵の場合は、復号のための入力プロンプトが自動的に表示されます。

PhanTerm は SSH Agent を完全にサポートしているため、秘密鍵のパスワードを繰り返し入力する手間を省くことができます。

オペレーティングシステムで既に SSH Agent を実行している場合:

  • Windows: PhanTerm は自動的に OpenSSH Agent (\\.\pipe\openssh-ssh-agent) を検出し、ブリッジします。
  • macOS / Linux: 自動的に SSH_AUTH_SOCK を検出し、ブリッジします。

システムレベルの Agent を使用していない場合でも、PhanTerm 自身の Agent サービスがメモリ上で実行されています。 接続設定で Forward Agent を有効にすると、PhanTerm は RFC 4254 プロトコルを通じて、リモートサーバー上にお客様の認証情報を安全に転送します。これにより、秘密鍵ファイルをリモート環境にコピーすることなく、リモートサーバー上で直接 Git リポジトリをプルしたり、他のマシンにジャンプしたりすることが可能になります。

認証の優先順位: 複数の認証方法が同時に有効になっている場合、PhanTerm は以下の順序でログインを試みます:

  1. システム Agent が提供する鍵
  2. PhanTerm 内蔵 Agent が提供する鍵
  3. 指定された秘密鍵ファイル
  4. ユーザー名とパスワード

ハードウェアセキュリティキーと暗号化認証

Section titled “ハードウェアセキュリティキーと暗号化認証”

PhanTerm は、FIDO2/U2F ベースのハードウェアセキュリティキー(YubiKey や Windows Hello など)を完全にサポートしています。この認証方式では、秘密鍵が物理ハードウェアや TPM チップ内に安全にロックされるため、暗号化レベルの強力な本人確認が可能になり、マルウェアがディスクやメモリを読み取って認証情報を盗み出す攻撃を根本から防ぐことができます。

物理セキュリティキー (YubiKey 等) のブリッジガイド

Section titled “物理セキュリティキー (YubiKey 等) のブリッジガイド”

物理セキュリティキーをご利用の場合、PhanTerm はシステムの SSH Agent を介してシームレスにブリッジすることができます(macOS、Linux、Windows 対応):

  1. ターミナルで ssh-add を実行し、セキュリティキーをオペレーティングシステムの SSH Agent に読み込ませます(例:ssh-add ~/.ssh/id_ed25519_sk)。
  2. PhanTerm の接続フォームで、Auth TypeKey に設定します。
  3. Key Path をセキュリティキーの公開鍵、または秘密鍵のスタブ(stub)ファイルに指定するだけで、シームレスにご利用いただけます。

Windows Hello ネイティブキーガイド

Section titled “Windows Hello ネイティブキーガイド”

Windows ユーザー向けに、PhanTerm はネイティブの Windows Hello ハードウェアキー統合を提供しています。これにより、エクスポート不可能なセキュリティキーをデバイスの TPM チップ内で直接生成することができます。

セキュリティ上の利点: 秘密鍵は TPM チップ内で生成され、その中に永続的に保持されるため、エクスポートすることはできません。これにより、ローカルのトロイの木馬や不正なプロセスが、平文のパスワードやソフトウェアの秘密鍵を密かに盗み出すリスクを効果的に防ぎます。

1. ワンクリックアップグレード(強く推奨)

Section titled “1. ワンクリックアップグレード(強く推奨)”

以前にパスワードを使用してサーバーにログインしていた場合、「ワンクリックアップグレード」機能を使用して、スムーズかつ安全にハードウェア保護へと接続をアップグレードすることを強くお勧めします。

  1. 通常通りパスワードを使用してサーバーに正常に接続します。
  2. 接続成功後、インターフェースの右下に「ハードウェア保護へのアップグレード」を促す通知バナーが表示されます。
  3. アップグレードに同意すると、システムは Windows Hello 認証(指紋/顔/PIN)を求め、ハードウェアに紐付いたセキュリティキーをローカルで自動生成します。
  4. PhanTerm は現在アクティブなセッションを自動的に再利用し、新しく生成された公開鍵をリモートサーバーの ~/.ssh/authorized_keys に安全にプッシュします。
  5. システムは新しい鍵を使用して自動的にバックグラウンド検証を実行します。検証が成功すると、ローカルに保存されているパスワードは完全に、かつ永続的に破棄されます。

新しい接続を作成する際、フォーム内でハードウェアに紐付く鍵の生成を直接選択することもできます。

Windows Hello セキュリティ境界の明確化

Section titled “Windows Hello セキュリティ境界の明確化”

ハードウェアセキュリティキーの特性を十分にご理解いただくために、以下の意図されたセキュリティメカニズムにご留意ください:

  • 毎回必須の検証:TPM のハードウェアゲートキーパーメカニズムと WebAuthn 仕様の厳格な要件により、PhanTerm は検証ステータスをメモリにキャッシュすることはなく、またキャッシュすることもできません。つまり、接続、再接続、またはハンドシェイク署名をトリガーするたびに、オペレーティングシステムは必ず Windows Hello(指紋/顔/PIN)の検証プロンプトを表示します。この操作を省略することはできず、中核的なセキュリティ設計として意図されたものです。
  • 内蔵キャッシュの性質:PhanTerm には内蔵の Agent キャッシュメカニズムが含まれていることにお気付きかもしれません。このキャッシュは、ディスク I/O と鍵の照合時間を削減するために ssh.Signer ランタイムオブジェクトを保存することのみを目的としており、生体認証を免除するものではありません