Это старая версия документа.


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

Many other configuration directives for sshd are available to change the server application's behavior to fit your needs. Be advised, however, if your only method of access to a server is ssh, and you make a mistake in configuring sshd via the /etc/ssh/sshd_config file, you may find you are locked out of the server upon restarting it. Additionally, if an incorrect configuration directive is supplied, the sshd server may refuse to start, so be extra careful when editing this file on a remote server.

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.

References

  Ubuntu Wiki SSH page.
  OpenSSH Website
  Advanced OpenSSH Wiki Page