その他
    ホーム 技術発信 DoRuby [macOS Sierra] ssh接続時のkeychain/agentへのパスフレーズ保存の挙動が変わった
    [macOS Sierra] ssh接続時のkeychain/agentへのパスフレーズ保存の挙動が変わった
     

    [macOS Sierra] ssh接続時のkeychain/agentへのパスフレーズ保存の挙動が変わった

    この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。

    macOS Sierraでの ssh接続時のkeychain/agentへのパスフレーズ保存の設定方法とkeychainに保存したパスフレーズの削除方法について

    背景

    今回開発環境のmacOSのバージョンUPを行ったのですが、
    ssh接続の際公開鍵認証のパスフレーズ入力を求めるポップアップダイアログが表示されなくなり
    コンソール上に直接パスフレーズを入力する挙動に変わりました。
    接続のたびにパスフレーズを入力することになり使い勝手が悪くなるため、解決策を調べてみました。

    解決策

    これはmacOS Sierraからの仕様変更とのことですが、
    $HOME/.ssh/configにて
    keychainへの追加とagentへの追加のコントロールができるようです。

    私が設定したのは以下

    Host *
      UseKeyChain no #keychainには保存しない
      AddKeysToAgent yes #agentには登録する
    

    これで再起動するまでは一度入力したパスフレーズが記憶されます。
    セキュリティを考慮しkeychainにはパスフレーズは保存していません。

    keychainに保存したパスフレーズの削除

    keychainに保存したパスフレーズは以下で削除できるようです。

    cd ~/Library/Keychains/<UUID>
    sqlite3 keychain-2.db 'delete from genp where agrp="com.apple.ssh.passphrases"'
    

    今回確認した環境

    OS: macOS 10.12.2

    当然ながら公式情報ではありませんので実施については自己責任でお願いします。