<===
2026-02-08 21:51:46
Ниже пошаговая «статья» под Linux про настройку сервера и клиента OpenSSH: и чтобы было PQ‑безопасно, и чтобы (по желанию) убрать предупреждение. [thinglab](https://thinglab.org/2025/08/openssh_post_quantum_kex/)
***
## 1. Проверяем версии и поддерживаемые алгоритмы
1. Проверить версию OpenSSH на сервере и клиенте:
```bash
ssh -V
```
PQ‑KEX доступны: `sntrup761x25519-sha512` с OpenSSH ≥ 9.0, `mlkem768x25519-sha256` с ≥ 9.9. [news.ycombinator](https://news.ycombinator.com/item?id=44863242)
2. Посмотреть поддерживаемые KEX на сервере:
```bash
# на сервере
ssh -Q kex
```
В выводе должны быть хотя бы `sntrup761x25519-sha512` и/или `mlkem768x25519-sha256`. [community.f5](https://community.f5.com/kb/security-insights/post-quantum-cryptography-openssh--s1ngularity-supply-chain-attack/343251)
Если их нет — нужен апгрейд пакета OpenSSH в дистрибутиве до свежей версии. [openssh](https://www.openssh.org/pq.html)
***
## 2. Настройка SSH‑сервера (sshd)
Редактируем `/etc/ssh/sshd_config` (или drop‑in в `/etc/ssh/sshd_config.d/*.conf`) от root. [ssh](https://www.ssh.com/academy/ssh/sshd_config)
### 2.1. Включаем пост‑квантовые KEX
Добавляем строку (лучше ближе к началу файла, чтобы было очевидно):
```sshconfig
KexAlgorithms sntrup761x25519-sha512,sntrup761x25519-sha512@openssh.com,mlkem768x25519-sha256
```
Это заставит сервер предлагать гибридные PQ‑алгоритмы в первую очередь. [thinglab](https://thinglab.org/2025/08/openssh_post_quantum_kex/)
Если нужно сохранить совместимость со старыми клиентами, можно добавить классические KEX в конец списка:
```sshconfig
KexAlgorithms sntrup761x25519-sha512,sntrup761x25519-sha512@openssh.com,mlkem768x25519-sha256,curve25519-sha256,curve25519-sha256@libssh.org
```
Так новые клиенты будут использовать PQ‑KEX, старые — уйдут на curve25519. [community.f5](https://community.f5.com/kb/security-insights/post-quantum-cryptography-openssh--s1ngularity-supply-chain-attack/343251)
### 2.2. Перезапуск и проверка
1. Проверяем конфиг:
```bash
sshd -t
```
Ошибок быть не должно. [ssh](https://www.ssh.com/academy/ssh/sshd_config)
2. Перезапускаем сервис (systemd):
```bash
sudo systemctl restart sshd
sudo systemctl status sshd
```
Убеждаемся, что сервер поднялся. [ssh](https://www.ssh.com/academy/ssh/sshd_config)
3. С клиента проверяем, какой KEX реально используется:
```bash
ssh -vvv user@server.example.com
```
В отладочном выводе ищем строки вида:
`kex: algorithm: mlkem768x25519-sha256` или `sntrup761x25519-sha512`. [youtube](https://www.youtube.com/watch?v=QGHze5fBECQ)
Если видишь один из этих KEX — сервер настроен «квантобезопасно» и предупреждение исчезнет на новых клиентах. [sansec](https://sansec.io/guides/ssh-post-quantum)
***
## 3. Настройка SSH‑клиента (ssh)
Клиент можно настроить и глобально (`/etc/ssh/ssh_config`), и локально для пользователя (`~/.ssh/config`). [ssh](https://www.ssh.com/academy/ssh/sshd_config)
### 3.1. Включаем PQ‑KEX на клиенте
Пример глобальной настройки для всех хостов:
```sshconfig
Host *
KexAlgorithms sntrup761x25519-sha512,sntrup761x25519-sha512@openssh.com,mlkem768x25519-sha256,curve25519-sha256,curve25519-sha256@libssh.org
```
Клиент будет сначала пытаться согласовать PQ‑KEX, потом — обычный curve25519. [openssh](https://www.openssh.org/pq.html)
Можно задать это только для конкретных хостов, например, для прод‑серверов:
```sshconfig
Host prod-*
HostName %h.example.com
User deploy
KexAlgorithms sntrup761x25519-sha512,mlkem768x25519-sha256,curve25519-sha256
```
Так ты не сломаешь совместимость со старыми коробками где‑то ещё. [thinglab](https://thinglab.org/2025/08/openssh_post_quantum_kex/)
***
## 4. Как отключить предупреждение (если надо)
Если по каким‑то причинам сервер обновить нельзя, но баннер раздражает, можно отключить именно квантовое предупреждение на клиенте. [linkedin](https://www.linkedin.com/posts/professor-linux_openssh-101-introduces-a-small-but-important-activity-7382134359811698690-mn95)
В `~/.ssh/config`:
```sshconfig
Host *
WarnWeakCrypto no-pq-kex
```
Это отключит только предупреждения про «не пост‑квантовые» KEX, оставив другие слабые шифры под контролем. [developercommunity.visualstudio](https://developercommunity.visualstudio.com/t/ssh-config-parameter-WarnWeakCrypto-is-n/11004245?sort=active&topics=windows+10.0)
Чтобы совсем вырубить все подобные варнинги:
```sshconfig
Host *
WarnWeakCrypto no
```
Но так можно пропустить реально опасные алгоритмы, поэтому лучше ограничиться `no-pq-kex`. [linkedin](https://www.linkedin.com/posts/professor-linux_openssh-101-introduces-a-small-but-important-activity-7382134359811698690-mn95)
***
## 5. Минимальный чек‑лист
- Версия OpenSSH на сервере ≥ 9.9 (для `mlkem768x25519-sha256`) либо ≥ 9.0 (хотя бы `sntrup761x25519-sha512`). [quantumcomputingreport](https://quantumcomputingreport.com/openssh-10-0-introduces-default-post-quantum-key-exchange-algorithm/)
- В `sshd_config` заданы PQ‑KEX через `KexAlgorithms ...`. [thinglab](https://thinglab.org/2025/08/openssh_post_quantum_kex/)
- Клиент настроен предпочитать PQ‑KEX, при необходимости — через `KexAlgorithms` в `ssh_config`/`~/.ssh/config`. [openssh](https://www.openssh.org/pq.html)
- Проверка `ssh -vvv` показывает один из PQ‑алгоритмов, предупреждений о non‑PQ KEX нет. [youtube](https://www.youtube.com/watch?v=QGHze5fBECQ)
Back to list