56b2e4
% containers-auth.json(5)
56b2e4
56b2e4
# NAME
56b2e4
containers-auth.json - syntax for the registry authentication file
56b2e4
56b2e4
# DESCRIPTION
56b2e4
74c329
A credentials file in JSON format used to authenticate against container image registries.
c81977
The primary (read/write) file is stored at `${XDG_RUNTIME_DIR}/containers/auth.json` on Linux;
c81977
on Windows and macOS, at `$HOME/.config/containers/auth.json`.
c81977
c81977
When searching for the credential for a registry, the following files will be read in sequence until the valid credential is found:
c81977
first reading the primary (read/write) file, or the explicit override using an option of the calling application.
c81977
If credentials are not present, search in `${XDG\_CONFIG\_HOME}/containers/auth.json`, `$HOME/.docker/config.json`, `$HOME/.dockercfg`.
c81977
c81977
Except the primary (read/write) file, other files are read-only, unless the user use an option of the calling application explicitly points at it as an override.
c81977
56b2e4
56b2e4
## FORMAT
56b2e4
56b2e4
The auth.json file stores encrypted authentication information for the
56b2e4
user to container image registries.  The file can have zero to many entries and
74c329
is created by a `login` command from a container tool such as `podman login`,
74c329
`buildah login` or `skopeo login`.  Each entry includes the name of the registry and then an auth
56b2e4
token in the form of a base64 encoded string from the concatenation of the
56b2e4
username, a colon, and the password.
56b2e4
56b2e4
The following example shows the values found in auth.json after the user logged in to
56b2e4
their accounts on quay.io and docker.io:
56b2e4
56b2e4
```
56b2e4
{
56b2e4
	"auths": {
56b2e4
		"docker.io": {
56b2e4
			"auth": "erfi7sYi89234xJUqaqxgmzcnQ2rRFWM5aJX0EC="
56b2e4
		},
56b2e4
		"quay.io": {
56b2e4
			"auth": "juQAqGmz5eR1ipzx8Evn6KGdw8fEa1w5MWczmgY="
56b2e4
		}
56b2e4
	}
56b2e4
}
56b2e4
```
56b2e4
56b2e4
An entry can be removed by using a `logout` command from a container
56b2e4
tool such as `podman logout` or `buildah logout`.
56b2e4
74c329
In addition, credential helpers can be configured for specific registries and the credentials-helper
74c329
software can be used to manage the credentials in a more secure way than depending on the base64 encoded authentication
74c329
provided by `login`.  If the credential helpers are configured for specific registries, the base64 encoded authentication will not be used
74c329
for operations concerning credentials of the specified registries.
74c329
74c329
When the credential helper is in use on a Linux platform, the auth.json file would contain keys that specify the registry domain, and values that specify the suffix of the program to use (i.e. everything after docker-credential-).  For example:
74c329
74c329
```
74c329
{
74c329
    "auths": {
74c329
        "localhost:5001": {}
74c329
    },
74c329
    "credHelpers": {
74c329
		"registry.example.com": "secretservice"
74c329
	}
74c329
}
74c329
```
74c329
74c329
For more information on credential helpers, please reference the [GitHub docker-credential-helpers project](https://github.com/docker/docker-credential-helpers/releases).
74c329
56b2e4
# SEE ALSO
74c329
    buildah-login(1), buildah-logout(1), podman-login(1), podman-logout(1), skopeo-login(1), skopeo-logout(1)
56b2e4
56b2e4
# HISTORY
56b2e4
Feb 2020, Originally compiled by Tom Sweeney <tsweeney@redhat.com>