
Mac OS Xで忘れてしまったウェブサイトやブラウザのパスワードをコマンドラインから取得する方法
Mac OS X のコマンドライン ツールを使用して、忘れてしまった Web サイトやブラウザのパスワードを取得できます。これは、ターミナル経由でキーチェーンにアクセスできる便利な機能です。
ウェブサイトのパスワードを何回忘れたことがありますか? 誰にでも起こり得ることなので、落ち込まないでください。朗報です。Mac OS X のキーチェーン機能を使用してブラウザ経由でウェブサイトのログイン情報を追跡すれば (ブラウザがログイン情報の保存/保管を尋ねるのをご存知ですか?)、心配する必要はありません。必要なのはウェブサイトの URL だけで、最初にパスワードを保存したのと同じユーザー アカウントにログインしている限り、忘れたパスワードを取得できます。この方法は、Chrome、Safari、Firefox 経由で情報が保管されているすべてのウェブサイトで機能し、他のブラウザでも同様に機能するはずです。これは、インターネット接続を必要としないため、多くのウェブサイトやサービスで複数の手順を必要とする「パスワード リセット」やパスワードを忘れた場合の機能を使用する優れた代替手段です。
重要なセキュリティ上の注意:このトリックにはセキュリティ侵害の可能性が多少ありますが、不特定多数の人がユーザーアカウントにログインできないようにしていれば、問題にはなりません。そもそもゲストログインはそのためにあるのですから。一方で、フォレンジック目的や特定のシステム管理ケースにおいては正当な価値があり、パスワードを忘れてしまい、特定のWebサービスでリセット手順全体をやりたくない人にとっても非常に役立ちます。とはいえ、この方法を使うと、同じユーザーアカウントに保存されているパスワードをユーザーが閲覧できるようになるため、プライバシーとセキュリティへの影響にご注意ください。
Macのコマンドラインで忘れたブラウザのパスワードを回復する
保存されている Web サイトのパスワードを取得するための基本的なコマンド構文は次のようになります。
security find-internet-password -s [url] -w
アカウントのセキュリティはデリケートな話題なので、盲目的にログイン情報を明らかにするコマンド文字列を発行しないよう、コマンド文字列を分解してみましょう。「security」コマンドは、Mac OS Xがログイン情報を保存するために使用するキーチェーンのフロントエンドです。「find-internet-password」は、一見すると分かりやすい名前を持つ主要なフラグです。-sは照合するURLを指定するために使用され、-wはsecurityコマンドにパスワードのみを返し、完全なキーリスト(そうでなければ意味不明な文字列)は返さないよう指示します。
これは、/Applications/Utilities/ ディレクトリにあるターミナル、またはLaunchpadのユーティリティフォルダに入力する必要があります。Returnキーを押すと、「セキュリティ担当者がキーチェーン内の「指定したドメイン」に保存されている機密情報の使用を要求しています。この項目へのアクセスを許可しますか?」というポップアップウィンドウが表示されます。
「許可」をクリックすると、パスワードが漏洩する可能性があります。「常に許可」を選択することは推奨されません。また、「拒否」を選択すると、パスワードの漏洩を防ぐことができます。
コマンドラインでキーチェーンからパスワードを取得する例
例として「getpocket.com」というウェブサイトをドメインとして使用します。これは私が頻繁に利用するサービスであり、MacのSafariとChrome、そしてiOSの付属アプリの両方に保存していたにもかかわらず、つい最近パスワードを忘れてしまったからです。パスワードは覚えていないものの、ブラウザには保存されているので、セキュリティコマンドを使ってパスワードを取得するのに最適なケースです。
したがって、コマンド文字列は次のようになります。
security find-internet-password -s getpocket.com -w
要求された場合は、ダイアログで「許可」をクリックします。
返されるのはパスワードを含む 1 行のみで、コマンド文字列全体と標準出力は次のようになります。
$ security find-internet-password -s getpocket.com -w
password123
(いいえ、それは本当のパスワードではありません)
これをスクリプト目的で使用する予定の場合は、パスワードを表示するために grep と組み合わせて -g フラグを試すことをお勧めします。その構文は次のようになります。
security find-internet-password -s DOMAIN -g | grep "password"
出力は「password: (actualpassword123)」のようになり、識別しやすくなります。
Webブラウザに保存されたパスワードに限定
この機能はウェブブラウザに保存されたパスワードに限定されますが、パスワードマネージャーではなくキーチェーンを使用して保存している限り、どのブラウザでも構いません。そのため、Macのログインパスワードを忘れてしまった場合(こちらを参照)、または特定のウェブサイトやサービスに関連しないログイン情報を取得するためのソリューションではありません。