
Пакет OpenSSH — это свободная реализация сетевого протокола, позволяющего создавать защищенные соединения, удаленно управлять операционной системой, туннелировать TCP-соединения (например, для передачи файлов). OpenSSH содержит такие клиенты: ssh — для замены rlogin и telnet, scp — для замены rcp и sftp — для замены ftp.
Разрабатывается проектом OpenBSD и распространяется под BSD лицензией.
Перед установкой необходимо убедиться в наличии в системе установленых:
- Компилятор С (например, gcc)
- Zlib — библиотека сжатия данных
- OpenSSL
Далее необходимо получить исходные тексты OpenSSH. Их можно скачать с официального сайта — OpenBSD
Установка из исходников тривиальна:
$ ./configure
$ make
$ make install
Из дополнительных ключей скрипта ./configure отмечу некоторые:
- --with-tcp-wrappers — служит для интеграции с системой безопасности так называемых «оберток» TCP;
- --with-ssl-dir — в этой опции можно указать расположение библиотек OpenSSL;
- --with-pid-dir — указывает расположение PID файла, в котором хранится ID процесса демона sshd;
- --with-xauth — указывает на расположение команды xauth, которая используется для X аутентификации.
После завершения установки, необходимо сконфигурировать систему. Для этого необходимо создать SSH ключи, которые являются уникальными идентификаторами системы и позволяют клиентам безопасно соединяться с хостом, на котором установлен SSH-сервер.
Для генерации ключей нужно выполнить:
$ make host-key
Нужно создать три ключа — для каждого из трех главных шифровальных алгоритмов rsa1, rsa, dsa:
$ ssh-keygen -t rsa1 -f /etc/ssh/ssh_host_key
$ ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N ''
$ ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key -N ''
Для каждого ключа создается по два файла: открытый ключ (файл с окончанием .pub) и скрытый ключ. Открытые ключи можно разместить в публичном доступе, чтобы дать возможность пользователям добавлять новые ключи.
На этом базовая установка и конфигурация завершена. Следующим действием будет запуск OpenSSH-сервера. В разных дистрибутивах это действие выполняется по-разному. Можно использовать такой init-скрипт — init-ssh.
Оригинал этой статьи в блоге