# копировть старый конфиг

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 г.