SSH server is by default configured to allow a user or client several tries to authenticate within a period before it's considered a failure. The default configuration allows three authentication attempts within 120 seconds (2 minutes), where if it still fails, the client will be given the Permission denied error and the session closed.

The SSH server will log the failed login, and the user will then be allowed to log in again after the period has passed. Temporarily blocking failed SSH login might slow down malicious login attempts but will not deter brute-force attacks by bots.

Steps to manage failed login attempts in SSH:

  1. Launch terminal.
  2. Open SSHd configuration file using your preferred text editor.
    $ sudo vi /etc/ssh/sshd_config
    [sudo] password for user:
  3. Search for LoginGraceTime and set the value in seconds.
    LoginGraceTime 60

    Remove # if exist at the start of the line to uncomment.

    Can also use unit such as m for minute. Set the value to 0 to disable the feature.

    LoginGraceTime 1m
  4. Search for MaxAuthTries and set the number of times authentication attempt is allowed.
    MaxAuthTries 5

    Add the line if it doesn't already exist and remove # at the beginning of the line if it exists.

  5. Restart ssh service for changes to take effect.
    $ sudo systemctl restart sshd
Discuss the article:

Comment anonymously. Login not required.