リモート先(
ssh
接続先)の macOS でdocker login
するとエラーが出ます。
$ docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username: keinos
Password:
Error saving credentials: error storing credentials - err: exit status 1, out: `error storing credentials - err: exit status 1, out: `User interaction is not allowed.``
「mac docker login できない」でググってもドンピシャの記事が出てこなかったので、自分のググラビリティとして。
TS; DR
「キーチェーンアクセス」にロック(アクセス制限)がかかってます。
画面共有でリモート先を確認するか、以下のコマンドでロックを解除します。
security unlock-keychain
TL; DR
macOS には「キーチェーンアクセス」と呼ばれる、パスワード・公開鍵・秘密鍵などの情報を一元管理する標準アプリがあります。iCloud 同期されるので、同じ Apple ID であれば別の環境でも保存されたパスワードが同期されます。
- 参考文献: macOS の標準機能でパスワードをランダム生成する方法 @ Qiita
1password のような便利さがある反面、セキュリティのため色々と動作にシビアな面があります。
そのうちの 1 つに、キーチェーンアクセスの許可が必要な OS やアプリのアップデートが行われるとユーザが承認するまでリモート操作の一部が制限されることがあります。
特に docker login
などの、パスワード情報をキーチェーンアクセスに保存して利用するタイプのセキュリティ重視のアプリがリモート先で何かしらのポップアップを表示している場合です。
$ # ロックがかかっているパターン
$ docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username: keinos
Password: ******
Error saving credentials: error storing credentials - err: exit status 1, out: `error storing credentials - err: exit status 1, out: `User interaction is not allowed.``
$ # ロック解除
$ security unlock-keychain
password to unlock default: ******
$ docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username: keinos
Password: ******
Login Succeeded
私の場合、リモート先の macOS が HighSierra (OSX 10.13.6) であったため、Docker の最新バージョンがあるものの「使えないよ」と叱られていました。このポップアップが表示された状態でも、security unlock-keychain
を実行すれば先に進めました。