Я намагаюся перенести ssh на віддалену машину, спроба не вдається:
$ ssh -vvv admin@192.168.100.14
OpenSSH_7.7p1, OpenSSL 1.0.2o 27 Mar 2018
.....
debug2: ciphers ctos: aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc
debug2: ciphers stoc: aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc
debug2: MACs ctos: umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-sha1
debug2: MACs stoc: umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-sha1
debug2: compression ctos: none,zlib@openssh.com
debug2: compression stoc: none,zlib@openssh.com
debug2: languages ctos:
debug2: languages stoc:
debug2: first_kex_follows 0
debug2: reserved 0
debug1: kex: algorithm: curve25519-sha256
debug1: kex: host key algorithm: rsa-sha2-512
Unable to negotiate with 192.168.100.14 port 22: no matching cipher found. Their offer: aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc
Наскільки я розумію , останній рядок журналу, пропозиції сервера використовувати один з наступних 4 -х алгоритмів шифрування: aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc
. Схоже, мій ssh-клієнт не підтримує жодного з них, тому сервер і клієнт не в змозі далі домовлятися.
Але мій клієнт підтримує всі запропоновані алгоритми:
$ ssh -Q cipher
3des-cbc
aes128-cbc
aes192-cbc
aes256-cbc
rijndael-cbc@lysator.liu.se
aes128-ctr
... and there are several more.
І якщо я чітко вказати такий алгоритм:
ssh -vvv -c aes256-cbc admin@192.168.100.14
Я можу успішно увійти на сервер.
Моя ~/.ssh/config
не містить жодних директив, що стосуються шифрів (фактично я її повністю видалив, але проблема залишається).
Отже, чому клієнт і сервер не можуть вирішити, який шифр використовувати без моїх чітких інструкцій? Клієнт розуміє, що сервер підтримує aes256-cbc
, клієнт розуміє, що він може сам ним користуватися, чому б просто не використовувати його?
Деякі додаткові примітки:
Не було такої проблеми деякий час (близько місяця) тому. З тих пір я не змінював жодних файлів конфігурації ssh. Я все ж оновив встановлені пакети.
Є питання, що описує дуже схожу на вигляд проблему, але немає відповіді на моє запитання: ssh не в змозі домовитись - не знайдено відповідного методу обміну ключами
ОНОВЛЕННЯ: проблема вирішена
Як пояснив telcoM, проблема полягає у сервері: він пропонує лише застарілі алгоритми шифрування. Я був впевнений, що і клієнт, і сервер не застаріли. Я зайшов у сервер (до речі, це Synology, оновлений до останньої доступної версії), і вивчив /etc/ssh/sshd_config
. Перший (!) Рядок цього файлу:
Ciphers aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc
Це дуже дивно (той факт, що рядок є першим у файлі), я впевнений, що раніше жодного разу не торкався цього файлу. Однак я змінив рядок на:
Ciphers aes256-ctr,aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc
перезапустив сервер (не зрозумів, як перезапустити sshd
сервіс лише), і тепер проблема відсутня: я можу сш на сервер як завжди.