info:To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments
info:To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments
## Enforce 2FA for all users in a group **(FREE)**
> [Introduced in](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/24965) GitLab 12.0, 2FA settings for a group are also applied to subgroups.
> [Introduced in](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/24965) GitLab 12.0, 2FA settings for a group are also applied to subgroups.
If you want to enforce 2FA only for certain groups:
To enforce 2FA only for certain groups:
1. Go to the group's **Settings > General** page.
1. Go to the group's **Settings > General** page.
1. Expand the **Permissions, LFS, 2FA** section.
1. Expand the **Permissions, LFS, 2FA** section.
...
@@ -56,11 +54,11 @@ If you want to enforce 2FA only for certain groups:
...
@@ -56,11 +54,11 @@ If you want to enforce 2FA only for certain groups:
You can also specify a grace period in the **Time before enforced** option.
You can also specify a grace period in the **Time before enforced** option.
To change this setting, you need to be administrator or owner of the group.
To change this setting, you must be an administrator or owner of the group.
If you want to enforce 2FA only for certain groups, you can enable it in the
If you want to enforce 2FA only for certain groups, you can enable it in the
group settings and specify a grace period as above. To change this setting you
group settings and specify a grace period as above. To change this setting you
need to be administrator or owner of the group.
must be administrator or owner of the group.
The following are important notes about 2FA:
The following are important notes about 2FA:
...
@@ -83,13 +81,13 @@ The following are important notes about 2FA:
...
@@ -83,13 +81,13 @@ The following are important notes about 2FA:
This action causes all subgroups with 2FA requirements to stop requiring that from their members.
This action causes all subgroups with 2FA requirements to stop requiring that from their members.
## Disabling 2FA for everyone
## Disable 2FA for everyone
WARNING:
WARNING:
Disabling 2FA for everyone does not disable the [enforce 2FA for all users](#enforcing-2fa-for-all-users)
Disabling 2FA for everyone does not disable the [enforce 2FA for all users](#enforce-2fa-for-all-users)
or [enforce 2FA for all users in a group](#enforcing-2fa-for-all-users-in-a-group)
or [enforce 2FA for all users in a group](#enforce-2fa-for-all-users-in-a-group)
settings. In addition to the steps in this section, you must disable any enforced 2FA
settings. You must also disable any enforced 2FA settings so users aren't asked to set up 2FA again
settings so users aren't asked to set up 2FA again, the next time the user signs in to GitLab.
when they next sign in to GitLab.
There may be some special situations where you want to disable 2FA for everyone
There may be some special situations where you want to disable 2FA for everyone
even when forced 2FA is disabled. There is a Rake task for that:
even when forced 2FA is disabled. There is a Rake task for that:
...
@@ -106,26 +104,26 @@ WARNING:
...
@@ -106,26 +104,26 @@ WARNING:
This is a permanent and irreversible action. Users have to
This is a permanent and irreversible action. Users have to
reactivate 2FA from scratch if they want to use it again.
reactivate 2FA from scratch if they want to use it again.
## Two-factor Authentication (2FA) for Git over SSH operations **(PREMIUM)**
## 2FA for Git over SSH operations **(PREMIUM)**
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/270554) in GitLab 13.7.
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/270554) in GitLab 13.7.
> - [Moved](https://gitlab.com/gitlab-org/gitlab/-/issues/299088) from GitLab Free to GitLab Premium in 13.9.
> - [Moved](https://gitlab.com/gitlab-org/gitlab/-/issues/299088) from GitLab Free to GitLab Premium in 13.9.
> - It's [deployed behind a feature flag](../user/feature_flags.md), disabled by default.
> - It's [deployed behind a feature flag](../user/feature_flags.md), disabled by default.
> - It's disabled on GitLab.com.
> - It's disabled on GitLab.com.
> - It's not recommended for production use.
> - It's not recommended for production use.
> - To use it in GitLab self-managed instances, ask a GitLab administrator to [enable it](#enable-or-disable-two-factor-authentication-2fa-for-git-operations).
> - To use it in GitLab self-managed instances, ask a GitLab administrator to [enable it](#enable-or-disable-2fa-for-git-operations).
WARNING:
WARNING:
This feature might not be available to you. Check the **version history** note above for details.
This feature might not be available to you. Check the **version history** note above for details.
Two-factor authentication can be enforced for Git over SSH operations. The OTP
Two-factor authentication can be enforced for Git over SSH operations. The one-time password (OTP)
verification can be done via a GitLab Shell command:
verification can be done via a GitLab Shell command:
```shell
```shell
ssh git@<hostname> 2fa_verify
ssh git@<hostname> 2fa_verify
```
```
Once the OTP is verified, Git over SSH operations can be used for a session duration of
After the OTP is verified, Git over SSH operations can be used for a session duration of
15 minutes (default) with the associated SSH key.
15 minutes (default) with the associated SSH key.
### Security limitation
### Security limitation
...
@@ -135,9 +133,9 @@ Once the OTP is verified, Git over SSH operations can be used for a session dura
...
@@ -135,9 +133,9 @@ Once the OTP is verified, Git over SSH operations can be used for a session dura
Once an OTP is verified, anyone can run Git over SSH with that private SSH key for
Once an OTP is verified, anyone can run Git over SSH with that private SSH key for
the configured [session duration](../user/admin_area/settings/account_and_limit_settings.md#customize-session-duration-for-git-operations-when-2fa-is-enabled).
the configured [session duration](../user/admin_area/settings/account_and_limit_settings.md#customize-session-duration-for-git-operations-when-2fa-is-enabled).
### Enable or disable Two-factor Authentication (2FA) for Git operations
### Enable or disable 2FA for Git operations
Two-factor Authentication (2FA) for Git operations is under development and not
2FA for Git operations is under development and not
ready for production use. It is deployed behind a feature flag that is
ready for production use. It is deployed behind a feature flag that is
**disabled by default**. [GitLab administrators with access to the GitLab Rails console](../administration/feature_flags.md)
**disabled by default**. [GitLab administrators with access to the GitLab Rails console](../administration/feature_flags.md)
-[Two-factor Authentication (2FA) for Git over SSH operations](#two-factor-authentication-2fa-for-git-over-ssh-operations).
-[Two-factor Authentication (2FA) for Git over SSH operations](#2fa-for-git-over-ssh-operations).
-[Customize session duration for Git Operations when 2FA is enabled](../user/admin_area/settings/account_and_limit_settings.md#customize-session-duration-for-git-operations-when-2fa-is-enabled).
-[Customize session duration for Git Operations when 2FA is enabled](../user/admin_area/settings/account_and_limit_settings.md#customize-session-duration-for-git-operations-when-2fa-is-enabled).
> - It's deployed behind a feature flag, disabled by default.
> - It's deployed behind a feature flag, disabled by default.
> - It's disabled on GitLab.com.
> - It's disabled on GitLab.com.
> - It's not recommended for production use.
> - It's not recommended for production use.
> - To use it in GitLab self-managed instances, ask a GitLab administrator to [enable it](../../../security/two_factor_authentication.md#enable-or-disable-two-factor-authentication-2fa-for-git-operations).
> - To use it in GitLab self-managed instances, ask a GitLab administrator to [enable it](../../../security/two_factor_authentication.md#enable-or-disable-2fa-for-git-operations).
NOTE:
NOTE:
This feature is under development and not ready for production use. It is deployed
This feature is under development and not ready for production use. It is deployed
behind a feature flag that is **disabled by default**. To use it in GitLab
behind a feature flag that is **disabled by default**. To use it in GitLab
self-managed instances, ask a GitLab administrator to [enable it](../../../security/two_factor_authentication.md#enable-or-disable-two-factor-authentication-2fa-for-git-operations).
self-managed instances, ask a GitLab administrator to [enable it](../../../security/two_factor_authentication.md#enable-or-disable-2fa-for-git-operations).
GitLab administrators can choose to customize the session duration (in minutes) for Git operations when 2FA is enabled. The default is 15 and this can be set to a value between 1 and 10080.
GitLab administrators can choose to customize the session duration (in minutes) for Git operations when 2FA is enabled. The default is 15 and this can be set to a value between 1 and 10080.