Helix Core is now P4. Product user interfaces will be updated soon. Learn more >>

P4 CLI Documentation | 2026.1

# p4 login

Log in to the P4 Server by obtaining a ticket.

## Syntax

    p4 [g-opts] login [-s | -p] [-a | -h host] [user]
    p4 [g-opts] login [-a -p] -r remotespec [--remote-user=X]
    p4 [g-opts] login [-s] -r remotespec [--remote-user=X]

Syntax and naming conventions

## Description

The `p4 login` command authenticates a user and creates a ticket that represents a session with the P4 Server. An authenticated user can access the P4 Server until the ticket expires or the user is logged out by the `p4 logout` command.

By default, tickets are valid for `12` hours. This value can be set for any group in the `p4 group` form.

Login attempts, whether successful or not, are logged to a structured log file. (See Structured logs in the P4 Server Administration Documentation.) If the attempt to log in fails, the reason is included in the log. In the case of authentication triggers or LDAP authentication (see p4 ldap), the parts of the error message that contain user data are sanitized as needed.

If you use LDAP authentication, you can set the `getattrs` option in the ldap spec `Options` field to specify whether the `Fullname` and `Email` fields for users created by `p4 login` are populated from the directory.

See also Login process for the user in the P4 Server Administration Documentation.

## Options

Option | Description
--- | ---
`-a` | Obtain a ticket for the user that is valid on all the client workstations of this P4 Server. Logging in with `-a` means the ticket is valid for the user across multiple, connected servers, such as commit, replica, edge, and standby. (See also the `-a` option of p4 logout.)
`-h host` | Request a ticket that is valid for the specified host IP address. This option is typically used with the `-p` option to acquire a ticket that can be used on a different machine.
`-p` | Display the ticket, rather than storing it in the local ticket file.
`-r` | Specify the remote server to which the login will automatically be forwarded. The login will be for the user specified by the `--remote-user` flag. However, if the remote spec contains a `RemoteUser` entry, the login is performed for that user. (See p4 remote.)
`-s` | Display the status of the current ticket, if one exists. Use with -a to display the status for all hosts, or with -h host to display the status for a specfic host. Users with super access can provide a username argument to display the status of that username's ticket. (See the Examples.)
`user` | (For the user with `super` access) Specify a username to log in as that user. `p4 login` does not prompt the user with `super` for the password of the specified `user`. Non-superusers who attempt to log in as other users must use the `p4 -u username login` form of the command and correctly supply the other user’s password.
`g-opts` | See Global options.

## Usage notes

Can File Arguments Use Revision Specifier? | Can File Arguments Use Revision Range? | Minimal Access Level Required
--- | --- | ---
N/A | N/A | `list` available to an operator user and a service user

- To create tickets that do not expire, set the timeout value to `unlimited` in the `p4 group` form.
- The ticket for a service user defaults to unlimited in 2025.2 and later.
- By default, after `3` failed login attempts, a user must wait up to ten seconds before logging in again. P4 Server superusers can change that default of `3` by setting the `dm.user.loginattempts` configurable.
- To extend a ticket’s lifespan, use `p4 login` while already logged in. Your ticket’s lifespan is extended by 1/3 of its initial timeout setting, subject to a maximum of your ticket’s initial timeout setting.
- Tickets are stored in the file specified by the `P4TICKETS` environment variable. If this variable is not set, tickets are stored in `%USERPROFILE%\p4tickets.txt` on Windows, and in `$HOME/.p4tickets` on other operating systems.
- In replicated environments, logging in to the target server The immediately upstream server for replica servers, edge servers, standby servers, proxies and brokers. See also 'upstream server' and 'central server'. does not log you in to any replica servers.
- To learn about "p4 login behavior with an auth-check-sso trigger", see Single sign-on and auth-check-sso triggers in the P4 Server Administration Documentation.

## Examples

`p4 login` | Prompt the user for a password. If the password is entered correctly, issue a ticket that is valid on the user’s machine.
`p4 -u builder login -a` | Attempt to log in as user `builder`. If the password is correct, issue a ticket that is valid on all the client machines of this Server.
p4 login -s maria | Get the status of the specified user's ticket. The output might be: User maria ticket expires in 430808 hours 17 minutes. User maria on host 10.0.101.22: Ticket: Set

## Related commands

To end a login session | `p4 logout`
To display tickets | `p4 tickets`

Your search for returned results