認証情報とVault
sshcでは、SSH接続に使うアカウントパスワード、鍵のパスフレーズ、TOTPのセットアップキーをVaultへ保存できます。Vault自体のパスワード保護は、端末ごとに選択できます。
| 種類 | 用途 | 保存・適用単位 |
|---|---|---|
| マスターパスワード | この端末のVaultを開く | 端末ごとに設定できる |
| アカウントパスワード | SSHサーバーのパスワード認証 | 接続先に紐付く |
| 鍵のパスフレーズ | 秘密鍵を復号する | 鍵に紐付く |
| ワンタイムパスワード(TOTP) | keyboard-interactiveの認証コード | 接続先に紐付く |
同期には、これらとは別の同期キーが使われています。
Vaultの保護を選ぶ
初回作成時、または[Settings]→[Master password]で、パスワードあり/なしを選べます。パスワードは4文字以上で、数字だけでも設定できます。短いパスワードは、ローカルファイルを持ち出された場合の保護が弱くなります。
パスワードなしではsshcの起動時に自動で開き、ローカルの保護はOSアカウントと端末のセキュリティに任せます。手動ロック後もパスワードなしで開けます。同期データは独立した同期キーで暗号化されます。保護方式を変更しても保存済みの認証情報は保持されます。
アカウントパスワードを保存する
Vaultでは、パスワードをラベル付きで保存し、接続先へ割り当てられます。編集画面を開くと、保存済みの値をVaultから復号して秘密入力欄へ読み込みます。アカウントパスワードは最初に伏せ字で表示され、表示操作の後に確認・編集できます。画面を離れたとき、Vaultをロックしたとき、保存が完了したときには、画面上の平文が破棄されます。
割り当てたパスワードは、Terminal、SFTP、ProxyJump、CLIで同じ接続先を開くときに利用されます。機能ごとに同じパスワードを設定し直す必要はありません。
鍵のパスフレーズ
鍵のパスフレーズは、鍵画面で秘密鍵ごとに保存・編集・削除できます。ProxyJumpでは、最終接続先だけでなく、各踏み台の鍵のパスフレーズとアカウントパスワードも個別に使えます。
TOTPを自動入力する
最初に[Menu]→[Vault]→[OTP]へ、認証サービスが表示するBase32セットアップキー、またはotpauth://totp/... URIを名前付きで保存します。OTP画面には現在の6桁コードだけを通常表示し、残り時間の右にある展開ボタンから、ひとつ前・ひとつ後のコードも確認できます。割り当て先のホスト一覧は各項目の次の行にあり、必要なときだけ開けます。次に[Connections]で対象の接続先を開き、[基本]→[認証]→[ワンタイムパスワード(TOTP)]から保存したTOTPを選択して保存します。接続先名を手入力して紐付ける必要はありません。
同じVaultは[Account passwords]、[Key passphrases]、[OTP]の3画面に分かれています。値の種類ごとに一覧と登録操作を分け、必要な情報だけを表示します。CLIではsshc otp list|show|add|edit|removeを利用できます。
OTP、TOTP、Verification code、認証コードなどを明示するkeyboard-interactiveの質問だけに、その時点のコードを自動入力します。たとえばVerification code:は自動入力の対象です。サーバーが入力を表示する指定を返す場合にも対応しますが、sshcが自動入力したコードをTerminalへ表示することはありません。曖昧なCodeや通常のパスワード質問にはTOTPを送りません。
Terminal、SFTP、sshc ssh(対話・非対話とも)、ProxyJumpの各hopで同じ割り当てが使われます。接続先、ユーザー、ポート、ProxyJump経路を変更した場合は、意図しない相手へコードを送らないよう自動入力を止めます。[基本]でTOTPを選び直して、新しい認証先への割り当てを明示してください。
認証要素の分離
パスワードとTOTPのセットアップキーを同じ端末のVaultに保存すると便利ですが、その端末を失った場合に両方の認証要素を同時に失う可能性があります。組織のセキュリティ方針で許可されている場合だけ使用してください。
ロックとパスワード変更
sshc vault status
sshc vault lock
sshc vault change-passwordVaultをロックしても、すでに開いているSSHセッションは切断されません。ただし、新たに認証情報を使う操作はできなくなります。パスワードを設定したVaultは、既定では利用者の操作によってVault内の秘密情報を最後に読み書きしてから12時間が過ぎると自動的にロックされます。[Settings]→[Engine]で自動ロックまでの時間を変更するか、自動ロックを無効にできます。パスワードなしのVaultには自動ロックは適用されません。