Для того чтобы ограничить использование определенного алгоритма HMAC при подключении по протоколу SFTP, необходимо настроить конфигурацию SSH сервера. SSH (Secure Shell) и SFTP (SSH File Transfer Protocol) используют одинаковый механизм аутентификации и шифрования, поэтому настройка SSH также повлияет на SFTP.
Вам нужно изменить конфигурационный файл SSH сервера, который обычно находится в `/etc/ssh/sshd_config` в Unix-подобных системах. Выполните следующие шаги для настройки сервера:
1. Откройте файл конфигурации SSH сервера (обычно `/etc/ssh/sshd_config`) с правами суперпользователя.
```bash
sudo nano /etc/ssh/sshd_config
```
2. Найдите или добавьте директиву `MACs`, которая определяет используемые алгоритмы HMAC. Отредактируйте её так, чтобы остались только желаемые алгоритмы, в вашем случае `hmac-sha2-256` и `hmac-sha2-512`:
```
MACs hmac-sha2-256,hmac-sha2-512
```
Это позволит SSH серверу принимать подключения только с использованием этих алгоритмов HMAC.
3. Сохраните изменения и закройте редактор.
4. Перезапустите SSH сервер для применения изменений:
```bash
sudo systemctl restart sshd
# Или используя следующую команду на системах без systemctl:
sudo service sshd restart
```
5. Чтобы убедиться, что настройки применены, можно использовать команду `ssh -Q mac`, которая покажет список поддерживаемых SSH сервером алгоритмов MAC:
```bash
ssh -Q mac
```
Относительно клиента, если сервер настроен должным образом, он не сможет подключиться, используя алгоритмы, не указанные в конфигурации сервера. Если клиент все же предпочитает указать алгоритмы явно, это можно сделать с помощью параметра `-o` в команде SSH при подключении:
```bash
sftp -o MACs=hmac-sha2-256,hmac-sha2-512 user@server
```
Учитывайте, что принудительное указание алгоритмов на стороне клиента может быть реализовано по-разному, в зависимости от программного обеспечения SFTP клиента, которое вы используете.