############################################################## ssh (4) keychain ############################################################## ========================================================= keychainとは ========================================================= * SSH接続やsshfsマウントにおいて、何回もパスワードを入力するのを回避できる. * `keychain` は、`ssh-agent` のラッパーツールであり、鍵の永続登録と環境変数の復元が可能. | ========================================================= keychainのインストール ========================================================= .. code-block:: bash sudo apt install keychain | --------------------------------------------------------- 基本構成:.zshrcへの設定 --------------------------------------------------------- * 設定は、シェルの初期化ファイル(`~/.zshrc` や `~/.bashrc`)に記述. * シェル起動時に自動で `ssh-agent` を起動し,秘密鍵を読み込む. .. code-block:: zsh eval $(keychain --quiet --agents ssh id_ed25519) source ~/.keychain/$HOST-sh - `--quiet`:メッセージを非表示にする. - `--agents ssh`:ssh-agentのみを使用する(デフォルト). - `id_ed25519`:対象の鍵ファイル(拡張子なし).複数列挙可能. | ========================================================= 鍵の登録と確認 ========================================================= --------------------------------------------------------- 鍵の登録 --------------------------------------------------------- * 初回またはWSL再起動後に,鍵の入力が求められる. --------------------------------------------------------- 登録済み鍵の確認: --------------------------------------------------------- .. code-block:: bash ssh-add -l 起動後に `SSH_AUTH_SOCK` が正しく設定されていれば, `ssh` や `sshfs` による認証はパスフレーズなしで行われる. | --------------------------------------------------------- 注意事項 --------------------------------------------------------- - コマンド `keychain` はWSLのセッションが保持されている限り,有効な `ssh-agent` セッションを維持する. - WSLのシャットダウンやWindowsの再起動後は, **再度1回だけパスフレーズの入力が必要** である. - 鍵ファイルのパーミッション( `600` )と `.ssh` ディレクトリのパーミッション( `700` )も適切に設定すること.