fix: --ssh-password を廃止し --ask-password (対話式・非表示入力) に置き換える
問題
--ssh-password PASSWORD はコマンドラインに平文でパスワードを渡すため、シェル履歴(.bash_history/.zsh_history)に記録されてしまう。Typerのhide_input=Trueは「入力時に画面表示しない」機能であり、すでにシェルに打ち込まれた文字列を後から履歴から隠すことはできない。
対応方針
--ssh-password(Options.ssh_password())を廃止する- 代わりに
--ask-password(bool flag)を追加し、指定時のみtyper.prompt(..., hide_input=True)で対話的にマスク入力を求める - 基本的にはSSHキー認証や
.env/macOS Keychain/GPG暗号化ファイル(#41 (closed), #42 (closed))を使うよう、ドキュメントで誘導する
影響範囲
src/fnb/options.py:ssh_password()→ask_password()src/fnb/cli.py:fetch/upload/syncコマンドのssh_passwordパラメータをask_passwordに置き換え、対話プロンプトの呼び出しを追加tests/unit/test_cli.py:test_*_with_ssh_password系のテストを--ask-password用に書き換え- ドキュメント:
docs/usage/commands.en.md,docs/usage/security.en.md,docs/usage/examples.en.md,docs/usage/quickstart.en.md,docs/references/architecture.en.md
gear.run_rsync(), fetcher.run(), uploader.run(), env.get_ssh_password()等の内部関数シグネチャ(ssh_password: str | Noneパラメータ)は変更しない。CLIオプション層のみの変更。
破壊的変更
--ssh-passwordフラグをスクリプト等で使っていた場合、動作しなくなる(廃止するため)。マイナーバージョンでの破壊的変更としてリリースノートに明記する。