Как установить сервер 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
Судя по приведенному выше результату, установленная версия OpenSSH — 7.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. Если у вас есть вопросы или комментарии, воспользуйтесь формой обратной связи ниже, чтобы связаться с нами.