Сервер OpenSSH

Введение

Эта секция руководства по Ubuntu Server представляет мощную коллекцию инструментов для удаленного контроля и обмена данными с сетевыми компьютерами, названная OpenSSH. Вы также изучите некоторые конфигурационные настройки, доступные для серверного приложения OpenSSH, и то как изменять их на вашей Ubuntu системе.

OpenSSH это свободно распространяемая версия семейства инструментов для удаленного управления компьютерами и передачи файлов с использованием протокола безопасной оболочки (SSH). Традиционные инструменты, используемые для этих функций, такие как telnet и rcp, незащищены и передают пользовательский пароль открытым текстом. OpenSSH предоставляет сервис на сервере и клиентские приложения для облегчения операций защиты, зашифрованного удаленного управления и передачи файлов, эффективно заменяя устаревшие инструменты.

Серверный компонент OpenSSH, sshd, постоянно ожидает клиентские подключения от любого клиентского приложения. Когда обнаруживается запрос на соединение, sshd устанавливает корректное соединение в зависимости от соединяющегося клиентского приложения. Например, если удаленный компьютер подсоединяется с помощью клиентского приложения ssh, сервер OpenSSH устанавливает сессию удаленного управления после авторизации. Если удаленный пользователь подсоединяется к серверу OpenSSH с помощью scp, сервис OpenSSH на сервере инициирует защищенное копирование файлов между сервером и клиентом после авторизации. OpenSSH может использовать много методов аутентификации, включая простой пароль, открытый ключ и билеты Kerberos.

Установка

Установка клиента и сервера OpenSSH очень простая. Для установки клиентского приложения OpenSSH на вашей системе Ubuntu используйте команду в терминале:

sudo apt-get install openssh-client

Для установки серверного приложения OpenSSH и связанных файлов используйте такую команду в терминале:

sudo apt-get install openssh-server

Пакет openssh-server может быть выбран для установки во время процесса установки Ubuntu Server Edition.

Конфигурация

Вы можете настроить поведение по умолчанию серверного приложения OpenSSH, sshd, редактируя файл /etc/ssh/sshd_config. Для информации по конфигурационным директивам, используемым в этом файле, вы можете посмотреть соответствующую страницу руководства, задав следующую команду в терминале:

man sshd_config

Существует множество директив в конфигурационном файле sshd, управляющих такими вещами, как настройки соединений и способы авторизации. Далее примеры конфигурационных директив, которые могут быть изменены редактированием файла /etc/ssh/sshd_config.

Прежде, чем редактировать конфигурационный файл, стоит создать копию оригинального файла и защитить его от записи, чтобы у вас были оригинальные настройки как справочник, который можно использовать повторно при необходимости.

Скопируйте файл /etc/ssh/sshd_config и защитите его от записи с помощью следующих команд в терминале:

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.original
sudo chmod a-w /etc/ssh/sshd_config.original

Далее примеры конфигурационных директив, которые вы можете изменить:

  • Чтобы установить TCP порт прослушивания для вашего OpenSSH 2222 вместо стандартного 22, измените директиву Port таким образом:

Port 2222
  • Чтобы sshd допускал вход с использованием открытых ключей, просто добавьте или измените строку:

PubkeyAuthentication yes

Если строка уже присутствует, убедитесь, что она не закомментирована.

  • Чтобы позволить вашему OpenSSH серверу показывать содержимое файла /etc/issue.net в качестве шапки пред авторизацией, просто добавьте или измените строку:

Banner /etc/issue.net

Все изменения производятся в файле /etc/ssh/sshd_config.

После изменений в /etc/ssh/sshd_config, сохраните файл и перестартуйте серверное приложение sshd для применения изменний, используя команду в терминале:

sudo /etc/init.d/ssh restart
Множество других директив конфигурации sshd доступны для изменения поведения серверного приложения под ваши нужды. Однако учтите, что если единственный способ доступа к серверу - это ssh и вы допустили ошибку конфигурации sshd в /etc/ssh/sshd_config, вы можете найти свой сервер заблокированным, пока его не перезагрузите. В дополнение, если неправильная директива настройки воспринялась, сервер sshd может отказаться загружаться, поэтому будьте очень осторожны, когда редактируете этот файл на удаленном сервере.

Ключи SSH

Ключи SSH разрешают авторизацию между двумя узлами без необходимости ввода пароля. Авторизация по ключам SSH использует два ключа: секретный и открытый.

Для создания ключей введите в терминале клиента:

ssh-keygen -t dsa

Это сгенерирует ключи использующие метод цифрового алгоритма подписи (DSA). В процессе у вас спросят пароль. Просто нажмите Enter на запрос о создании ключа. По умолчанию открытый ключ сохраняется в файл ~/.ssh/id_dsa.pub, в то время как секретный в ~/.ssh/id_dsa. Теперь скопируйте файл id_dsa.pub на удаленный компьютер и добавьте его к ~/.ssh/authorized_keys командой:

ssh-copy-id username@remotehost

В конце дважды проверьте права доступа файла authorized_keys, чтобы только авторизованные пользователи имели права на чтение и запись. Если права установлены некорректно, измените их:

chmod 600 .ssh/authorized_keys

Теперь у вас есть возможность соединиться по SSH с этим узлом без ввода пароля.

Ссылки