sshd_config.txt

Разделы
    # копировть старый конфиг
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.old

# если не удалять конфиг по дефолту, то надо
# проверить, что PasswordAuthentication нигде в конфиге не yes, иначе берётся yes
# и авторизация по паролю не будет отключена(хрен знает, почему-так)

cat > /etc/ssh/sshd_config << 'END'
##
# ITr default SSHD config
##
# default port for Putty connection
Port 1222
ChallengeResponseAuthentication no
UsePAM yes
X11Forwarding yes
PrintMotd no
AcceptEnv LANG LC_*
Subsystem sftp /usr/lib/openssh/sftp-server
PermitRootLogin yes
PubkeyAuthentication yes
PubkeyAcceptedAlgorithms +ssh-rsa
AuthorizedKeysFile .ssh/authorized_keys
HostbasedAuthentication no
IgnoreRhosts yes
PasswordAuthentication no
PermitEmptyPasswords no
TCPKeepAlive yes
ClientAliveInterval 60
ClientAliveCountMax 60

END

# для подключение из Sublime text 3(есть глюк такой, что только на 22 нормально работает
# НЕ ДЛЯ БОЕВЫХ серверов
cat >> /etc/ssh/sshd_config << 'END'
# another port for connection(SFTP only)
# Sublime text 3 debian version BUG, mat` ego...
Port 22
Match LocalPort 22
AllowTCPForwarding no
X11Forwarding no
ForceCommand internal-sftp

END

systemctl restart ssh

# исправить порт на клиенте


# пояснения...
#разрешить авторизацию по ключу
PubkeyAuthentication yes

AuthorizedKeysFile .ssh/authorized_keys
HostbasedAuthentication no
IgnoreRhosts yes

# запрещаем авторизоваться по паролю(только ключи)
PasswordAuthentication no

PermitEmptyPasswords no

#TCPKeepAlive - определяет поддержку соединение в активном состоянии,
#для этого используются специальные контрольные сообщения,
#посылаемые с определенным интервалом времени.
#Если директива установлена, обрыв соединения будет вовремя замечен,
#а соответствующий процесс будет убит. Возможные значения "yes", "no".
TCPKeepAlive yes

#ClientAliveInterval - время простоя клиента в секундах,
#после которого демон sshd отправляет через защищённый канал запрос клиенту.
#Директива работает только для протокола 2.
#По-умолчанию установлен в 0, т.е. клиенту вообще не будут направляться такие запросы.
ClientAliveInterval 60

#ClientAliveCountMax - количество проверок доступности клиента,
#которые могут оставаться без ответа. Если предел достигнут, sshd завершит сеанс.
#Данные запросы, отличаются от TCPKeepAlive, так как отправляются через защищённый канал
#и не могут быть подменены, в то время как TCPKeepAlive такую возможность допускает.
#СlientAlive полезен, если поведение клиента или сервера зависит от активности соединения.
#Если ClientAliveInterval равно 15 секундам,
#а значение ClientAliveCountMax оставлено по-умолчанию, не отвечающие клиенты SSH,
#будут отключаться приблизительно через 45 секунд.
#Параметр работает только для протокола версии 2. По-умолчанию установлено значение 3.
ClientAliveCountMax 60
изменён: 27 октября 2023 г.