Содержание
Сервер 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
Ключи 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 с этим узлом без ввода пароля.