Я только что запустил apt-get upgrade, и, согласно /var/log/apt/history.log, openssl обновлен до версии 1.0.1e-2 + rvt + deb7u7. Теперь у меня все еще открыт один сеанс SSH, но я не могу открыть другой. Я перезапустил SSH, который вернул OpenSSL version mismatch. Built against 1000105f, you have 10001080. Я безуспешно пробовал apt-get remove openssl && apt-get install openssl. Я запускаю Debian на Raspberry Pi.

Обновление: перенесено в суперпользователя

15
Niek 7 Июн 2014 в 14:06
Какой у вас дистрибутив Linux? Пожалуйста, отредактируйте вопрос со всеми деталями.
 – 
Stefano Sanfilippo
7 Июн 2014 в 14:09
Это может произойти, если вы соберете SSH для одной версии OpenSSL (скажем, 1.0.2o), а затем обновите GitHub до стабильной версии 1.0.2 (OpenSSL_1_0_2-stable). SSH обнаружит несоответствие номера исправления и не запустится. Я считаю, что вам также необходимо использовать -Wl,-R,<OpenSSL path> и/или -Wl,--enable-new-dtags.
 – 
jww
19 Июл 2018 в 12:54

7 ответов

Лучший ответ

Попробуйте apt-get install openssh-server openssh-client.

У меня была такая же проблема, когда я обновил свою систему до Debian Testing. Несмотря на то, что SSH уже был установлен, в моем случае он не был задействован для обновления, когда я запускал apt-get update && apt-get upgrade, и поэтому в системе все еще были те же двоичные файлы SSH с уже устаревшими библиотеками, связанными с ним, следовательно, несовпадение версий .

10
Milos Ivanovic 16 Июн 2014 в 19:48

Убедитесь, что ваши другие пакеты SSL имеют тот же номер версии, что и ваш пакет openssl. Такие вещи, как libssl1.0.0 и libssl-dev, могут иметь более высокую или более низкую версию, если вы использовали нестандартные репозитории, такие как debian-testing.

Итак, если ваша версия openssl, например, 1.0.1e-2 + deb7u11, исправить это так же просто, как

apt-get install libssl1.0.0=1.0.1e-2+deb7u11
1
Cory Ringdahl 8 Июл 2014 в 04:41

Я столкнулся с этой ошибкой в ​​моем Ubuntu.

OpenSSL version mismatch. Built against 100020bf, you have 1000106f

Вот что я сделал, чтобы исправить проблему.

  1. Проверить где ssh

    \#which ssh
    
    /usr/local/bin/ssh
    
  2. Удалите текущий пакет ssh.

    sudo apt-get remove openssh-server openssh-client
    
  3. Удалите файл ssh в / usr / local / bin / ssh

  4. Переустановите пакет ssh следующим образом.

    sudo apt-get install openssh-server openssh-client
    
  5. Выйдите из текущего сеанса и снова войдите в систему. Команда SSH вернулась к работе и находится в / usr / bin / ssh.

    \#which ssh
    
    /usr/bin/ssh
    
1
Suraj Rao 17 Дек 2018 в 11:04

Поскольку OpenSSL обещает совместимость с ABI в основных версиях (1.x ..), ни одно приложение не должно жаловаться, если версия библиотеки увеличивается. В OP встроенная версия кажется меньше версии библиотеки, и проблем быть не должно.

Это похоже на ошибку в OpenSSH. К сожалению, решение состоит в том, чтобы обеспечить одновременное обновление пакетов, что не всегда возможно.

1
mcr 5 Мар 2019 в 02:46

Я не рекомендую приведенный ниже ответ, потому что с помощью which ssh я только что обнаружил, что использую версию OpenSSH, которую я скомпилировал самостоятельно.

# which ssh
/usr/local/bin/ssh

После удаления моего локального ssh openssh-server и openssh-client успешно установлены.


Я столкнулся с этим и использовал ту же технику, которую использовал для исправления https://askubuntu.com/a/854145/348754.

Я обнаружил следующую ошибку.

Creating SSH2 ECDSA key; this may take some time ...OpenSSL version mismatch. Built against 1000106f, you have 1000207f
dpkg: error processing package openssh-server (--configure):
 subprocess installed post-installation script returned error exit status 255

Мне нужно отредактировать /var/lib/dpkg/info/openssh-server.postinst и прокомментировать следующие строки.

#create_key "Creating SSH2 ECDSA key; this may take some time ..." \
#       "$hostkeys" /etc/ssh/ssh_host_ecdsa_key -t ecdsa
#create_key "Creating SSH2 ED25519 key; this may take some time ..." \
#       "$hostkeys" /etc/ssh/ssh_host_ed25519_key -t ed25519
0
Community 13 Апр 2017 в 15:22

Также убедитесь, что любой другой установленный пакет не имеет собственной библиотеки openssl и не добавляется в вашу среду.

Одним из таких виновников, который я только что обнаружил, является «Max View Storage Manager» от Microsemi. (Да, я упомянул это имя, чтобы пристыдить разработчиков.) Оно добавляется к:

  • LD_LIBRARY_PATH
  • PWD
  • OPENSSL_HOME
  • OPENSSL_BIN
  • ПУТЬ

Ssh отлично работал как root (где эти дополнительные записи не были добавлены), но не работал как мой обычный пользователь.

0
dummzeuch 15 Фев 2019 в 14:14

Все ответы здесь не помогли мне. Вы можете установить последнюю версию openssl вручную, выполнив следующие действия.

Затем установите openssh вручную из своего репо.

Я столкнулся с этой проблемой, когда попытался запустить vagrant ssh в ящик, где у моего ssh-клиента не было скомпилированной правильной версии openssl.

0
Ahmed 9 Мар 2021 в 17:44