LoginSignup
0
1

Macのキーチェーンアクセスを使ってターミナルで安全にパスワードを取得する

Posted at

こちらの記事(どうしてもコマンドライン上でCiscoのVPN接続をしたい)を書いた際に、パスワードをスクリプト内にそのまま書いておりました。ただセキュリティ的によくないなと思っており、より安全にパスワードを取得する方法を調べたのでまとめておきます。私はMacユーザーなので、Macの場合のみを書きますが、同じような仕組みが他のOSにもあるんじゃないかと期待します。

やることは、
(1)キーチェーンアクセスにパスワードを登録し、
(2)CLIでパスワードを取得するということです。
主にこちらのサイトを参考にしました。
https://gotohayato.com/content/547/

1. キーチェーンアクセスにパスワードを登録

キーチェーンアクセスはMacのパスワードを安全に保管する仕組みだと理解しています。以下の通りに、まずはそこにパスワードを保存します。

キーチェーンアクセスを開き、デフォルトキーチェーン上で右上の書き込みアイコンを押す。
スクリーンショット 2023-08-04 12.11.43.png

適当なキーチェーン項目名とアカウント名を入力後(これらは項目を見つける際にのみ使います)、保存したいパスワードを入力し、追加を押します。このキーチェーン項目名とアカウント名は項目を見つける際にのみ使うので、なんでもいいのですが、見つけやすいような項目名とパスワードに対応するアカウント名を使うといいかなと思います。ここでは例として"cisco_vpn_password"と"account_name"としてみましょう。
スクリーンショット 2023-08-04 12.14.44.png

そうするとこのように項目が追加されると思います。
スクリーンショット 2023-08-04 12.15.43.png

2. CLIでパスワードを取得する

次に登録したパスワードをターミナル上で取得してみます。

ターミナルやshellで

security find-generic-password -s [サービス名] -a [アカウント名] -w

とすると、キーチェーンアクセスに登録したパスワードを取得することができます。
上の例の場合なら、security find-generic-password -s cisco_vpn_password -a account_name -wと入力します。

初回アクセス時には使用しているMacのパスワードを求められます。ここで「許可」を押せば今回だけキーチェーンへのアクセスを許可することになりますし、「常に許可」を押せば以降のパスワードの入力は必要なくなります。
スクリーンショット 2023-08-04 12.51.13.png

許可するとこのようにパスワードを取得することができました。
スクリーンショット 2023-08-04 12.51.24.png

おわりに

このような仕組みを使えば、shell上で自動的にパスワードを入力するということが可能になるので、より柔軟にスクリプトを作成することができそうですね。

0
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
0
1