認証
DR-Terminal は 3 つの認証方式に対応しています。パスワード、秘密鍵、FIDO2(YubiKey)セキュリティキーです。
パスワード
最もシンプルな方法です。保存済みの接続に入力したパスワードは、JSON 設定ではなくプラットフォームのセキュアストアに保存されます。パスワードフィールドが空の場合、アプリは接続のたびに尋ねます。
公開鍵 → パスワードへのフォールバック:サーバーが公開鍵を拒否した場合(例:authorized_keys に含まれていない)、DR-Terminal は接続を切断せず、自動的に同じユーザーのパスワードを尋ねます。
秘密鍵
OpenSSH、PKCS#1、PKCS#8、ssh.com、PuTTY PPK(v2/v3)形式の鍵をすべて受け付けます。形式は自動的に判別されるため、.ppk の鍵も事前に変換することなく使えます。次のことができます。
- 鍵を接続フォームに直接貼り付ける。
- 鍵マネージャー(設定 → セキュリティ → SSH 鍵)を使い、保存済みの鍵を選択する。ここからインポートする鍵ファイルは、さらに生のバイナリ DER でも構いません。
鍵がパスフレーズで暗号化されている場合、DR-Terminal はその鍵を初めて使うときにパスフレーズを尋ね、その後は メモリ上にのみ 保持します。ssh-agent と同様に、アプリの実行ごとに一度ロックを解除すれば済み、アプリを終了するとすべての鍵が再びロックされます。インポートした暗号化済みの鍵は、元の暗号化された形のままセキュアストアに保存されます。多くのアルゴリズムに対応しています。RSA、ECDSA(P-256、P-384、P-521)、Ed25519、Ed25519-SK、ECDSA-SK(FIDO)です。
鍵ジェネレーター
設定 → セキュリティに SSH 鍵を生成 ウィザードがあります。種類(例:ed25519)を選び、パスフレーズ(任意 — セキュアストア内でも鍵を保護します)を設定すると、鍵がローカルに保存されます。既定の鍵コメントは ${user}@${host}@DR-Terminal で、サーバー上で鍵を見分けるのに便利です。公開鍵はクリップボードにコピーして、サーバーの ~/.ssh/authorized_keys に貼り付けられます。
一覧の鍵はその場で 名前変更 できます。選んだ名前が既存のものと衝突する場合、アプリは自動的に (2) を付け加えます。
鍵コンバーター
設定 → セキュリティ → SSH 鍵 → 変換 は、秘密鍵を一般的なあらゆる形式の間で再シリアライズします。ソース(保存済みの鍵、ファイル、貼り付けたテキスト)と出力形式を選び、結果をコピー・共有・保存できます。
双方向に対応する形式:
| 形式 | 読み込み | 書き出し |
|---|---|---|
OpenSSH (BEGIN OPENSSH PRIVATE KEY) | ✓ | ✓ |
PKCS#8 (BEGIN PRIVATE KEY) | ✓ | ✓ |
PKCS#1 (BEGIN RSA PRIVATE KEY、RSA のみ) | ✓ | ✓ |
| PuTTY PPK — v2 と v3 | ✓ | ✓ |
入力は PEM(テキスト)、PuTTY PPK、または生のバイナリ DER に対応し、形式は自動的に判別されます。鍵の種類:RSA、Ed25519、ECDSA(P-256/384/521)。
- PuTTY PPK のエクスポート が双方向で動作するようになりました(以前はアプリは
.ppkを読み込むことしかできませんでした)。バージョンセレクターで v3(Argon2id KDF + HMAC-SHA-256、最新の PuTTY)または v2(旧来の PuTTY)を選びます。この方法で作成したファイルは、PuTTY/puttygenでそのまま読み込めます。 - エクスポート用パスフレーズは任意です。 暗号化しない鍵の場合は空欄のままにします。設定すると、出力は形式ごとに強力な KDF(bcrypt / PBKDF2 / Argon2id)で暗号化されます。セキュリティとデータ → エクスポートした鍵 を参照してください。
- 変換が失敗した場合(ソースのパスフレーズが誤っている、形式に互換性がないなど)、アプリは汎用的なエラーではなく実際の理由を表示するようになりました。
PKCS#1 は RSA 鍵のみを表すため、その出力形式はソースが RSA 鍵の場合にのみ提供されます。
パスワード接続を鍵に切り替える
authorized_keys を手作業で編集する必要はありません。保存済みのパスワード接続について、DR-Terminal は 2 か所でガイド付きの移行を提供します。
- 接続一覧 — パスワード接続のカードにある鍵アイコンから移行ウィザードを開始します。
- セッション内 — 接続中のパスワードセッションのターミナルメニューに SSH 鍵に切り替え があります。
どちらも同じ流れです。保存済みの鍵を選ぶか新しく生成すると、DR-Terminal は既存のパスワードログインを使ってサーバーに公開鍵を配置し、鍵認証が実際に動作することを確認し、そのうえで初めて保存済みの接続を鍵認証に切り替えます。確認に失敗した場合、接続は変更されません。
セキュリティキー(FIDO2 / YubiKey)
DR-Terminal は ed25519-sk と ecdsa-sk の鍵を扱い、アプリ内で生成することもできます。外部の ssh-keygen は不要です。
DR-Terminal で YubiKey 連携の鍵を生成する
- 設定 → セキュリティ → SSH 鍵 → SSH 鍵を生成。
- セキュリティキー スイッチをオンにします。アルゴリズムを選びます。Ed25519-SK(推奨)または ECDSA-SK です。
- 指示が出たら YubiKey にタッチします。アプリはトークンに新しいクレデンシャルの作成を要求し、公開鍵に署名します。
- 鍵は DR-Terminal の鍵マネージャーに保存されます。公開鍵をコピーして、ターゲットサーバーの
~/.ssh/authorized_keysに貼り付けてください。
Windows Hello:Windows では、FIDO2 の PIN 入力はアプリ内ダイアログではなく、ネイティブの Windows Hello ダイアログ(PIN / 指紋 / 顔)です。
レジデント 鍵(YubiKey 自体に保存される鍵)を使うと、鍵ファイルを持ち歩く必要がなくなります。秘密全体がトークン上にあるからです。DR-Terminal で生成した鍵はレジデントではありません。クレデンシャルハンドルは鍵マネージャーに保存され、トークンと一緒に必要になります。
既存の SK 鍵を使う
別の場所で生成済みの id_ed25519_sk / id_ecdsa_sk(例:ssh-keygen -t ed25519-sk 経由)がある場合は、同じ鍵マネージャーからインポートしてください。DR-Terminal はインポートした SK 鍵と生成した SK 鍵を同じように扱います。
接続時
DR-Terminal は鍵へのタッチを要求します。インジケーターが点滅したらタップしてください。iOS は NFC と USB-C(YubiKey 5Ci 以降)に対応します。Android は NFC + USB(OTG)。デスクトップはネイティブの FIDO2 API(Windows Hello、macOS、Linux は libfido2 経由)を使用します。