Как собрать openssl linux

Собираем OpenSSH и OpenSSL

Автор: Андрей Лаврентьев (lavr@unix1.jinr.ru), http://unix1.jinr.ru/

Sources of distribution: openssh, openssl, rsaref, random packages for Solaris

Важное: Для невнимательных, в OS отличные от OpenBSD, необходимо скачивать и устанавливать portable версии OpenSSH, П-О-Р-Т-И-Р-О-В-А-Н-Н-Ы-Й OpenSSH.

Драйвера рандомизационных устройств OS Solaris:

Проекты для эмуляции устройств рандомизации:

Для тех кто желает собрать OpenSSH с библиотекой RSAref, на самом деле, необходимости в ней нет, поскольку OpenSSL имеет собственную реализацию RSA:

Устанавливаем OpenSSH:

    Проверяем установлены ли dependence, зависимые библиотеки: OpenSSL, ZLib.

OpenSSH 2.9p2 или 3.01p требует уже установленных в системе библиотек:

  • ZLib — желательно версии 1.1.3
  • OpenSSL — версии не ниже 9.5a

Если указанные библиотеки установлены, можно перейти к установке OpenSSH, иначе, необходимо собрать перечисленные библиотеки. Для проверки наличия библиотек, в системах FreeBSD/Linux/NetBSD/OpenBSD, воспольуйтесь командой ldconfig, man ldconfig.
Например (Linux): и в соответствии с указанным маршрутом библиотек, использовать команды: Устанавливаем библиотеки ZLib и OpenSSL:

  • Zlib — собрать по желанию динамическую или статическую
  • OpenSSL — собрать по желанию динамическую или статическую.

Примечание: для Solaris/Sparc 5.5[1] и 5.6 советуют собирать OpenSSL статически из-за ошибок связанных с библиотекой crypto. Не забудьте добавить путь к библиотекам OpenSSL в LD_LIBRARY_PATH/LD_RUN_PATH, для последующей сборки и работы OpenSSH.

Важное: для тех кто хочет собрать OpenSSL и OpenSSH с библиотекой rsaref2, это не нужный спорт, но если уж решили, то примените патч и укажите в LIBS библиотеки необходимые для сборки OpenSSL — rsaref и для OpenSSH дополнительно RSAglue(эту взять от прежде собранного OpenSSL с поддержкой rsaref). При сборке OpenSSH с rsaref не забудьте исправить порядок следования библиотек в Makefile: LDFLAGS=-L. -lssh -Lopenbsd-compat/ -lopenbsd-compat -R/usr/local/ssl/lib -L/usr /local/ssl/lib -lcrypto -lRSAglue -lrsaref -L/usr/local/lib -R/usr/local/lib и далее при сборке утилит.

Устанавливаем OpenSSH: Советы очень простые, желательно использовать оптимизацию и свои, возможно, не тривиальные ключи компиляторов gcc/egcs/pgcc/cc. Строго использовать ключи: —disable-suid-ssh —without-rsh —with-pam (если ваша OS поддерживает PAM и вы хотите задействовать поддержку) и помнить что опция —libexecdir=/path — задает путь к месторасположению ssh-askpass

В ряде систем, отсутствуют драйвера и устройства рандомизации:

  • /dev/random
  • /dev/urandom

Для их эмуляции можно воспользоваться проектами EGD или PRNGD.
Для OS Solaris, воспользоваться драйвером random, дистрибутивы ANDIrand указаны выше или EGD, PRNGD.
Для OS FreeBSD использовать /usr/ports/security/openssh-portable.
Для OS Linux использовать rpm/srpm или собрать самостоятельно.

Примечание: Если у вас возникли проблемы на этапе линковки в коммерческих non-intel платформах, ищите правильный порядок следования библиотек -lname и правьте Makefile.
Дело в том что ни один грамотный администратор, не будет устанавливать на non-intel платформу gcc с его линкером, гнутые ld просто не работают!
А родные линкеры очень умные и щепетильные в плане построения компилятора и линковщика.
Позже я добавлю тонкости установки OpenSSH на платформы ConvexOS(что-то типа bsd-43, по-русски глюкало), SPP HP-UX(ядро mach с эмуляцией OS HP-UX — по-русски глюкало), HP-UX.

  • Устанавливаем OpenSSH-AskPass: Никаких особых тонкостей нет, за исключением использования функции substr|sub в awk/gawk, в оригинальном варианте, в качестве имени функции используется sub — справедливо для гнусного awk(gawk), в коммерческих системах, в awk эта функция называется substr. Патч прилагается выше, как и все необходимые distribution sources.
  • Генерация новых или недостающих личных и публичных ключей (private/public) для SSH-1(rsa) и для SSH-2(rsa/dsa).

      Проверяем есть ли у нас на рабочей машине директория $HOME/.ssh и ее содержимое: В данном примере, у нас нет такой директории и соответственно нет личных и публичных ключей, на рабочей(клиентской машине) они должны быть, ниже будет пример генерации ключей. В данном примере, у нас есть директория .ssh и все необходимые ключи для SSH1: identity — личный, identity.pub — публичный. Но отсутствуют ключи RSA/DSA для SSH2, их необходимо создать.

    Генерация личных и публичных ключей:

    1. Если у нас не созданы ключи для SSH-1, создаем их командой ssh-keygen:
    2. Если у нас не созданы ключи для SSH-2, создаем их командой ssh-keygen с параметрами rsa и dsa:

    Генерация RSA ключей для SSH-2:

    Генерация DSA ключей для SSH-2:

    Примечание: passphrase при генерации не отображается на экране, следует различать личные rsa ключи для протокола SSH-1 — identity, для SSH-2 — id_rsa и публичные соответственно.

    Использование SSH-2 для работы с машинами под управлением SSH-1:

    Все что необходимо, это добавить опцию -1 при использовании команд:

    slogin,ssh, для scp указывать опцию -oProtocol=1

    Примеры: На машине(рабочая станция — клиент) unix1 — ssh2, на машине cv — ssh1.

    Теперь достаточно добавить свои публичные ключи, содержимое файлов: Примечание: файлы identity.pub/id_rsa.pub/id_dsa.pub — публичные ключи на локальной машине, в то время как authorized_keys/authorized_keys2 файлы содержащие публичные ключи других машин, с которых разрешен вход через авторизацию по публичным ключам.
    Все готово для того чтобы с рабочей машины заходить на удаленные, на которых запущен sshd(2’ой или 3’ей версии) без пароля, через авторизацию публичных ключей. Если вы привыкли запускать X11 через xdm, то указанную выше процедуру следует проделать с xsession.

    SSH для Windows:

    поддерживает:

    • протоколы SSH 1/1.5
    • поддерживается порт-форвардинг
    • RSA ключи, сгенеренные ssh-keygen (последняя утилита не входит в пакет)
    • front-end интерфейс
    • command-line интерфейс
    • scp отсутствует
    • sftp отсутствует
    • документация — скудная
  • Free/Windows Telnet/SSH client

    поддерживает:

    • протоколы SSH 1/2
    • RSA ключи, сгенеренные ssh-keygen (последняя утилита не входит в пакет)
    • поддерживается порт-форвардинг
    • поддерживается X11-форвардинг
    • front-end интерфейс
    • command-line интерфейс — plink
    • поддерживается scp, утилита pscp, имеется front-end
    • поддерживается генератор ключей — puttygen(ssh-keygen)
    • поддерживается ssh-agent — pageant, включающий в себя реализацию ssh-add
    • sftp реализован
    • документация — замечательная
  • Only command-line interface

    поддерживает:

    • command-line интерфейс только
    • scp отсутствует
  • Client-Server для OS Windows:

    • полная, актуальная реализация OpenSSH для Windows (на базе Cygwin)
      • клиент-сервер, полная реализация OpenSSH
      • необходимый набор cygwin включаен в дистрибутив
      • только command-line интерфейс
      • X-Forwarding

    Источник

    Собираем OpenSSH и OpenSSL

    Автор: Андрей Лаврентьев (lavr@unix1.jinr.ru), http://unix1.jinr.ru/

    Sources of distribution: openssh, openssl, rsaref, random packages for Solaris

    Важное: Для невнимательных, в OS отличные от OpenBSD, необходимо скачивать и устанавливать portable версии OpenSSH, П-О-Р-Т-И-Р-О-В-А-Н-Н-Ы-Й OpenSSH.

    Драйвера рандомизационных устройств OS Solaris:

    Проекты для эмуляции устройств рандомизации:

    Для тех кто желает собрать OpenSSH с библиотекой RSAref, на самом деле, необходимости в ней нет, поскольку OpenSSL имеет собственную реализацию RSA:

    Устанавливаем OpenSSH:

      Проверяем установлены ли dependence, зависимые библиотеки: OpenSSL, ZLib.

    OpenSSH 2.9p2 или 3.01p требует уже установленных в системе библиотек:

    • ZLib — желательно версии 1.1.3
    • OpenSSL — версии не ниже 9.5a

    Если указанные библиотеки установлены, можно перейти к установке OpenSSH, иначе, необходимо собрать перечисленные библиотеки. Для проверки наличия библиотек, в системах FreeBSD/Linux/NetBSD/OpenBSD, воспольуйтесь командой ldconfig, man ldconfig.
    Например (Linux): и в соответствии с указанным маршрутом библиотек, использовать команды: Устанавливаем библиотеки ZLib и OpenSSL:

    • Zlib — собрать по желанию динамическую или статическую
    • OpenSSL — собрать по желанию динамическую или статическую.

    Примечание: для Solaris/Sparc 5.5[1] и 5.6 советуют собирать OpenSSL статически из-за ошибок связанных с библиотекой crypto. Не забудьте добавить путь к библиотекам OpenSSL в LD_LIBRARY_PATH/LD_RUN_PATH, для последующей сборки и работы OpenSSH.

    Важное: для тех кто хочет собрать OpenSSL и OpenSSH с библиотекой rsaref2, это не нужный спорт, но если уж решили, то примените патч и укажите в LIBS библиотеки необходимые для сборки OpenSSL — rsaref и для OpenSSH дополнительно RSAglue(эту взять от прежде собранного OpenSSL с поддержкой rsaref). При сборке OpenSSH с rsaref не забудьте исправить порядок следования библиотек в Makefile: LDFLAGS=-L. -lssh -Lopenbsd-compat/ -lopenbsd-compat -R/usr/local/ssl/lib -L/usr /local/ssl/lib -lcrypto -lRSAglue -lrsaref -L/usr/local/lib -R/usr/local/lib и далее при сборке утилит.

    Устанавливаем OpenSSH: Советы очень простые, желательно использовать оптимизацию и свои, возможно, не тривиальные ключи компиляторов gcc/egcs/pgcc/cc. Строго использовать ключи: —disable-suid-ssh —without-rsh —with-pam (если ваша OS поддерживает PAM и вы хотите задействовать поддержку) и помнить что опция —libexecdir=/path — задает путь к месторасположению ssh-askpass

    В ряде систем, отсутствуют драйвера и устройства рандомизации:

    • /dev/random
    • /dev/urandom

    Для их эмуляции можно воспользоваться проектами EGD или PRNGD.
    Для OS Solaris, воспользоваться драйвером random, дистрибутивы ANDIrand указаны выше или EGD, PRNGD.
    Для OS FreeBSD использовать /usr/ports/security/openssh-portable.
    Для OS Linux использовать rpm/srpm или собрать самостоятельно.

    Примечание: Если у вас возникли проблемы на этапе линковки в коммерческих non-intel платформах, ищите правильный порядок следования библиотек -lname и правьте Makefile.
    Дело в том что ни один грамотный администратор, не будет устанавливать на non-intel платформу gcc с его линкером, гнутые ld просто не работают!
    А родные линкеры очень умные и щепетильные в плане построения компилятора и линковщика.
    Позже я добавлю тонкости установки OpenSSH на платформы ConvexOS(что-то типа bsd-43, по-русски глюкало), SPP HP-UX(ядро mach с эмуляцией OS HP-UX — по-русски глюкало), HP-UX.

  • Устанавливаем OpenSSH-AskPass: Никаких особых тонкостей нет, за исключением использования функции substr|sub в awk/gawk, в оригинальном варианте, в качестве имени функции используется sub — справедливо для гнусного awk(gawk), в коммерческих системах, в awk эта функция называется substr. Патч прилагается выше, как и все необходимые distribution sources.
  • Генерация новых или недостающих личных и публичных ключей (private/public) для SSH-1(rsa) и для SSH-2(rsa/dsa).

      Проверяем есть ли у нас на рабочей машине директория $HOME/.ssh и ее содержимое: В данном примере, у нас нет такой директории и соответственно нет личных и публичных ключей, на рабочей(клиентской машине) они должны быть, ниже будет пример генерации ключей. В данном примере, у нас есть директория .ssh и все необходимые ключи для SSH1: identity — личный, identity.pub — публичный. Но отсутствуют ключи RSA/DSA для SSH2, их необходимо создать.

    Генерация личных и публичных ключей:

    1. Если у нас не созданы ключи для SSH-1, создаем их командой ssh-keygen:
    2. Если у нас не созданы ключи для SSH-2, создаем их командой ssh-keygen с параметрами rsa и dsa:

    Генерация RSA ключей для SSH-2:

    Генерация DSA ключей для SSH-2:

    Примечание: passphrase при генерации не отображается на экране, следует различать личные rsa ключи для протокола SSH-1 — identity, для SSH-2 — id_rsa и публичные соответственно.

    Использование SSH-2 для работы с машинами под управлением SSH-1:

    Все что необходимо, это добавить опцию -1 при использовании команд:

    slogin,ssh, для scp указывать опцию -oProtocol=1

    Примеры: На машине(рабочая станция — клиент) unix1 — ssh2, на машине cv — ssh1.

    Теперь достаточно добавить свои публичные ключи, содержимое файлов: Примечание: файлы identity.pub/id_rsa.pub/id_dsa.pub — публичные ключи на локальной машине, в то время как authorized_keys/authorized_keys2 файлы содержащие публичные ключи других машин, с которых разрешен вход через авторизацию по публичным ключам.
    Все готово для того чтобы с рабочей машины заходить на удаленные, на которых запущен sshd(2’ой или 3’ей версии) без пароля, через авторизацию публичных ключей. Если вы привыкли запускать X11 через xdm, то указанную выше процедуру следует проделать с xsession.

    SSH для Windows:

    поддерживает:

    • протоколы SSH 1/1.5
    • поддерживается порт-форвардинг
    • RSA ключи, сгенеренные ssh-keygen (последняя утилита не входит в пакет)
    • front-end интерфейс
    • command-line интерфейс
    • scp отсутствует
    • sftp отсутствует
    • документация — скудная
  • Free/Windows Telnet/SSH client

    поддерживает:

    • протоколы SSH 1/2
    • RSA ключи, сгенеренные ssh-keygen (последняя утилита не входит в пакет)
    • поддерживается порт-форвардинг
    • поддерживается X11-форвардинг
    • front-end интерфейс
    • command-line интерфейс — plink
    • поддерживается scp, утилита pscp, имеется front-end
    • поддерживается генератор ключей — puttygen(ssh-keygen)
    • поддерживается ssh-agent — pageant, включающий в себя реализацию ssh-add
    • sftp реализован
    • документация — замечательная
  • Only command-line interface

    поддерживает:

    • command-line интерфейс только
    • scp отсутствует
  • Client-Server для OS Windows:

    • полная, актуальная реализация OpenSSH для Windows (на базе Cygwin)
      • клиент-сервер, полная реализация OpenSSH
      • необходимый набор cygwin включаен в дистрибутив
      • только command-line интерфейс
      • X-Forwarding

    Источник

    Читайте также:  Internet connection sharing как отключить windows 10
    Оцените статью