Я только что запустил 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.
Обновление: перенесено в суперпользователя
7 ответов
Попробуйте apt-get install openssh-server openssh-client
.
У меня была такая же проблема, когда я обновил свою систему до Debian Testing. Несмотря на то, что SSH уже был установлен, в моем случае он не был задействован для обновления, когда я запускал apt-get update && apt-get upgrade
, и поэтому в системе все еще были те же двоичные файлы SSH с уже устаревшими библиотеками, связанными с ним, следовательно, несовпадение версий .
Убедитесь, что ваши другие пакеты 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
Я столкнулся с этой ошибкой в моем Ubuntu.
OpenSSL version mismatch. Built against 100020bf, you have 1000106f
Вот что я сделал, чтобы исправить проблему.
Проверить где ssh
\#which ssh /usr/local/bin/ssh
Удалите текущий пакет ssh.
sudo apt-get remove openssh-server openssh-client
Удалите файл ssh в / usr / local / bin / ssh
Переустановите пакет ssh следующим образом.
sudo apt-get install openssh-server openssh-client
Выйдите из текущего сеанса и снова войдите в систему. Команда SSH вернулась к работе и находится в / usr / bin / ssh.
\#which ssh /usr/bin/ssh
Поскольку OpenSSL обещает совместимость с ABI в основных версиях (1.x ..), ни одно приложение не должно жаловаться, если версия библиотеки увеличивается. В OP встроенная версия кажется меньше версии библиотеки, и проблем быть не должно.
Это похоже на ошибку в OpenSSH. К сожалению, решение состоит в том, чтобы обеспечить одновременное обновление пакетов, что не всегда возможно.
Я не рекомендую приведенный ниже ответ, потому что с помощью 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
Также убедитесь, что любой другой установленный пакет не имеет собственной библиотеки openssl и не добавляется в вашу среду.
Одним из таких виновников, который я только что обнаружил, является «Max View Storage Manager» от Microsemi. (Да, я упомянул это имя, чтобы пристыдить разработчиков.) Оно добавляется к:
- LD_LIBRARY_PATH
- PWD
- OPENSSL_HOME
- OPENSSL_BIN
- ПУТЬ
Ssh отлично работал как root (где эти дополнительные записи не были добавлены), но не работал как мой обычный пользователь.
Все ответы здесь не помогли мне. Вы можете установить последнюю версию openssl вручную, выполнив следующие действия.
Затем установите openssh вручную из своего репо.
Я столкнулся с этой проблемой, когда попытался запустить vagrant ssh в ящик, где у моего ssh-клиента не было скомпилированной правильной версии openssl.
Похожие вопросы
Новые вопросы
ssh
ОБЩАЯ ПОДДЕРЖКА SSH НЕ В ТЕМЕ. Вопросы поддержки можно задать на https://superuser.com. Secure Shell (SSH) - это криптографический сетевой протокол для безопасной передачи данных. Используйте этот тег для программирования вопросов, связанных с Secure Shell. Распространенные проблемы с аутентификацией и настройкой не входят в тему переполнения стека.
-Wl,-R,<OpenSSL path>
и/или-Wl,--enable-new-dtags
.