2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

CodeCommitのキーチェインパスワードを自動的に削除する

Posted at

背景

PC 環境をWindowsからMacへ変更したところ、keychainで保存されるcodecommitパスワードが15分すぎたら
無効になってしまって403になる。keychainの設定毎回するのも面倒。それで以下にようなコマンドで定期的に
keychainのパスワード削除する方法がある。

ここを参考して
コマンドの詳細を調べなした。

terminalで security help でコカンド情報を表示される。

security delete-internet-password help
Usage: delete-internet-password [-a account] [-s server] [options...] [keychain...]
    -a  Match "account" string
    -c  Match "creator" (four-character code)
    -C  Match "type" (four-character code)
    -d  Match "securityDomain" string
    -D  Match "kind" string
    -j  Match "comment" string
    -l  Match "label" string
    -p  Match "path" string
    -P  Match port number
    -r  Match "protocol" (four-character code)
    -s  Match "server" string
    -t  Match "authenticationType" (four-character code)

-l コマンドでレベルで削除できることがわかる。その後以下のコマンド実行して成功。

Terminal にて1件削除

 以下にように security delete-internet-password コマンドで削除うできるが毎回消す必要があるので
面倒。

security delete-internet-password -l git-codecommit.ap-northeast-1.amazonaws.com

複数件を定期的に削除

以下のようにスクリプトでバッチを定義的に動くようにすれは気にしないまま勝ってに消せるので便利。ProgramArgumentsに実行したい
文字列に配列を作成すればよい。今回実際実施したコードは以下です。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>Label</key>
  <string>delete-codecommit-keychainpass</string>
 
  <key>ProgramArguments</key>
  <array>
    <string>security</string>
    <string>delete-internet-password</string>
    <string>-l</string>
    <string>git-codecommit.ap-northeast-1.amazonaws.com</string>
  </array>

  <key>RunAtLoad</key>
  <true/>
 
  <key>StartInterval</key>
  <integer>600</integer>
  
  <key>StandardErrorPath</key>
  <string>/tmp/error.log</string>
  <key>StandardOutPath</key>
  <string>/tmp/key_delete.log</string>
</dict>
</plist>

この例ではStartInterval を600つまり10分ごとと設定してますが、もっと早く削除したい場合その値を変更すれはよいです。

やったこと

  1. ~/Library/LaunchAgents/ にdelete-keychain-password.plistファイルを追加
  2. 上記載のコードでファイルを上書き
  3. launchctl load コマンドで設定をロード
  4. 何かの情報変更必要ば場合launchctl unload コマンドで一回設定無効にして.plistファイルを更新して再度 load コマンド実行すれはよい。

コマンドリスト

cd ~/Library/LaunchAgents/
vi delete-keychain-password.plist
launchctl load ~/Library/LaunchAgents/delete-keychain-password.plist
launchctl unload ~/Library/LaunchAgents/delete-keychain-password.plist

まとめ

上記載のやり方で実行して正常にパワワード削除されていることが確認しました。
今回に対応にここを参考 しました。

今回はcodecommit用パスワードを削除しましたが、同じように必要に応じて他にパスワードも削除可能です。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?