Поиск по сайту:

Как установить сервер OpenSSH из исходного кода в Linux


OpenSSH — это бесплатная полная реализация протокола SSH 2.0 с открытым исходным кодом, которая предоставляет ряд инструментов для безопасного доступа и управления удаленными компьютерными системами, а также управления ключами аутентификации. такие как ssh (безопасная замена telnet), scp, sftp (безопасная замена ftp), ssh-keygen, ssh-copy-id, ssh-add и другие.

Недавно был выпущен OpenSSH 9.3, который содержит множество новых функций и исправлений ошибок; вы можете прочитать примечания к выпуску SSH для получения дополнительной информации.

В этой статье мы объясним, как установить и настроить последнюю версию сервера и клиента OpenSSH в системе Linux из исходных кодов. Мы предполагаем, что у вас уже установлена версия пакета OpenSSH.

Требования:

  • Система Linux Debian/Ubuntu или RHEL/CentOS.
  • Компилятор Си
  • Zlib 1.1.4 или 1.2.1.2 или более поздняя версия
  • LibreSSL или OpenSSL >= 1.0.1 < 1.1.0

Установите сервер OpenSSH из исходного кода.

Перед установкой последней версии SSH обязательно проверьте текущую версию SSH, установленную в вашей системе, с помощью следующей команды.

ssh -V

OpenSSH_7.7p2 Ubuntu-4ubuntu2.5, OpenSSL 1.0.2g	1 Mar 2016

Судя по приведенному выше результату, установленная версия OpenSSH7.7. Чтобы установить последнюю версию OpenSSH, сначала необходимо установить несколько зависимостей, то есть инструменты разработки или основы сборки и другие необходимые пакеты, как показано ниже.

-------------- On RedHat-based Distros --------------
sudo yum update
sudo yum group install 'Development Tools'
sudo yum install zlib-devel openssl-devel

-------------- On Debian-based Distros --------------
sudo apt update 
sudo apt install build-essential zlib1g-dev libssl-dev 

Чтобы создать подходящую среду для установки сервера OpenSSH, нам необходимо создать нового системного пользователя и группу с именем “sshd”, а также безопасное место для chroot.

sudo mkdir /var/lib/sshd
sudo chmod -R 700 /var/lib/sshd/
sudo chown -R root:sys /var/lib/sshd/
sudo useradd -r -U -d /var/lib/sshd/ -c "sshd privsep" -s /bin/false sshd

Объяснение флагов в команде useradd выше:

  • -r – сообщает пользователю, что необходимо создать системного пользователя.
  • -U – указывает ему создать группу с тем же именем и идентификатором группы.
  • -d — указывает каталог пользователя
  • -c – используется для добавления комментария
  • -s — указывает оболочку пользователя

Теперь загрузите архив OpenSSH версии 9.3 с любого из доступных HTTP-зеркал или используйте следующую команду wget для загрузки непосредственно в свой терминал.

wget -c https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.3p1.tar.gz
tar -xzf openssh-9.3p1.tar.gz
cd openssh-9.3p1/

Теперь мы соберем и установим сервер OpenSSH, используя --with-md5-passwords, --with-privsep-path и . >--sysconfdir, которые установят все файлы в /usr/local/ (это ПРЕФИКС установки по умолчанию).

Вы можете просмотреть все доступные параметры, запустив ./configure -h и дополнительно настроив установку.

./configure -h

Например, чтобы включить поддержку PAM и SELinux, добавьте параметры --with-pam и --with-selinux соответственно, вам необходимо установить все необходимые заголовочные файлы. чтобы они работали.

## Install PAM and SELinux Headers ##
sudo apt install libpam0g-dev libselinux1-dev   [On Debian/Ubuntu]
sudo yum install pam-devel libselinux-devel     [On CentOS/RHEL]

## Compile and Install SSH from Sources ##
./configure --with-md5-passwords --with-pam --with-selinux --with-privsep-path=/var/lib/sshd/ --sysconfdir=/etc/ssh 
make
sudo make install 

После установки OpenSSH перезапустите SSH или откройте другое окно терминала и проверьте версию OpenSSH, установленную в вашей системе.

ssh -V

OpenSSH_9.3p1, OpenSSL 3.0.1 14 Dec 2021

Различные файлы конфигурации OpenSSH расположены по адресу:

  • ~/.ssh/* – в этом каталоге хранятся пользовательские конфигурации ssh-клиента (псевдонимы ssh) и ключи.
  • /etc/ssh/ssh_config – этот файл содержит общесистемные конфигурации ssh-клиента.
  • /etc/ssh/sshd_config – содержит конфигурации службы sshd.

Чтобы настроить псевдонимы ssh, см.: Как настроить пользовательские соединения SSH для упрощения удаленного доступа.

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

Вот и все! В этой статье мы объяснили, как установить и настроить последнюю версию сервера OpenSSH из исходного кода в системе Linux. Если у вас есть вопросы или комментарии, воспользуйтесь формой обратной связи ниже, чтобы связаться с нами.