ホーム 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

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

記事を共有

最近人気な記事