Это старая версия документа.
Содержание
Сервер 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 Keys
SSH keys allow authentication between two hosts without the need of a password. SSH key authentication uses two keys, a private key and a public key.
To generate the keys, from a terminal prompt enter:
ssh-keygen -t dsa
This will generate the keys using the Digital Signature Algorithm (DSA) method. During the process you will be prompted for a password. Simply hit Enter when prompted to create the key.
By default the public key is saved in the file ~/.ssh/id_dsa.pub, while ~/.ssh/id_dsa is the private key. Now copy the id_dsa.pub file to the remote host and append it to ~/.ssh/authorized_keys by entering:
ssh-copy-id username@remotehost
Finally, double check the permissions on the authorized_keys file, only the authenticated user should have read and write permissions. If the permissions are not correct change them by:
chmod 600 .ssh/authorized_keys
You should now be able to SSH to the host without being prompted for a password.