SSH/ru

SSH (Secure SHell, безопасная оболочка) — это программа терминала, использующая шифрование, которая заменяет классическую программу telnet в Unix-подобных операционных системах.

В дополнение к удаленному терминальному доступу, предоставляемому основной программой ssh, в SSH был разработан набор программ, включающий в себя scp (Secure Copy Program, безопасное копирование) и sftp (Secure File Transfer Protocol, безопасный протокол передачи файлов).

Изначально SSH была не свободной программой. Однако сегодня самой популярной и де-факто стандартной версией SSH является реализация OpenSSH из операционной системы OpenBSD. Именно данная версия предустановлена на Gentoo.

Проверка установки
В большинстве развертываний Gentoo Linux пакет OpenSSH уже установлен в системе. Это можно проверить с помощью запуска команды ssh. Если пакет установлен, то будет отображена справка по использованию:

Если справка не будет отображена, то ssh либо испорчен, либо не установлен. Также возможно, что пользователь просто захочет пересобрать OpenSSH с новым набором USE-флагов. В любом случае, продолжим с обзора доступных USE.

Установка OpenSSH
После включения нужных USE-флагов не забудьте установить (или пересобрать) OpenSSH:

Сервер
Добавьте openssh в уровень запуска default, если это ещё не было сделано:

Запустим службу sshd с помощью команды:

Сервером OpenSSH можно управлять, как и любой другой службой OpenRC:

Создание ключей
Работа безопасной оболочки в SSH основана на использовании криптографических ключей, применяемых для шифрования, дешифрования и хэширования.

Системные ключи генерируются при первом запуске службы SSH. Ключи можно сгенерировать заново с помощью команды ssh-keygen.

Чтобы сгенерировать ключ, который будет использоваться для протокола SSH версии 1 (обычно он больше не используется; он является устаревшим и заменен протоколом версии 2):

Чтобы сгенерировать ключ, который будет использоваться для протокола SSH версии 2 (алгоритмы DSA И RSA):

Настройка сервера
Настройки сервера SSH обычно хранятся в файле, хотя возможно провести дополнительную настройку в файле OpenRC , включая изменение местоположения конфигурационного файла. Для более детальной информации о том, как настроить сервер, смотрите man-страницу sshd_config.

Вы также можете изучить Руководство OpenSSH Свена для настройки, ориентированной на безопасность.

Настройка клиента
Клиент ssh и относящиеся к нему программы (scp, sftp и другие) настраиваются в следующих файлах

Для более детальной информации прочтите документацию для.

Беспарольная аутентификация
Полезна для работы с git-сервером.

Клиент
На стороне клиента запустите следующую команду:

Сервер
Проверьте, что аккаунт пользователя существует на сервере, затем поместите содержимое клиентского файла в файл, расположенный в домашнем каталоге пользователя.

Проверка на одной машине
Вышеописанную процедуру можно протестировать локально:

Устранение проблем
Существует 3 различных уровня отладки. Параметр  заставляет ssh выводить отладочные сообщения о своей работе. Это полезно при отладке соединения, проблемах аутентификации и настройки. Несколько параметров  увеличивают подробность сообщений. Максимальный уровень подробности равен трём.

Обрыв долгоживущих соединений
Многие устройства доступа к Интернету выполняют преобразование сетевых адресов (NAT). Это процесс, который позволяет устройствам из частной сети, которая обычно находится дома или на работе, получить доступ к другим сетям (например, к Интернету) не смотря на то, что для этой сети выделен только один IP-адрес. К сожалению, не все NAT-устройства одинаково устроены, и некоторые из них могут обрывать долгоживущие TCP-соединения, в том числе, используемые в SSH. Обычно это обнаруживается при внезапной потере возможности взаимодействия с удаленным сервером, хотя сама программа ssh</tt> свою работу не прекращала.

Чтобы решить данную проблему, можно настроить клиенты и сервера OpenSSH таким образом, чтобы они посылали незаметные сообщения «keep alive», нацеленные на поддержку и подтверждение использования соединения.
 * Чтобы разрешить keep alive всем клиентам вашего сервера установите в файле параметр   (или другое значение в секундах).
 * Чтобы разрешить keep alive всем серверам, к которым подключается ваш клиент, установите в файле параметр   (или другое значение в секундах).

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

Решение: Что скорее всего, в процессе входа через SSH на удаленный сервер или узел переменная  либо сбрасывается, либо устанавливается после того, как её установит сеанс SSH.

Чтобы проверить этот вариант, послу удаленного входа выполните следующее:

Должно вывестись что-то типа  или   (если на стороне сервера включён параметр  ). Если обычное «:0.0» не выводится, проверьте, что переменная  не сбрасывается или не переинициализируется в файле. Если это так, то удалите или закомментируйте инициализацию, чтобы не дать командам в  выполниться в процессе входа SSH:

Ещё одно решение — создать алиас в файле.

Предотвращение вторжений
SSH — это служба, которая часто подвергается атаке. Некоторые инструменты (например, sshguard и fail2ban) отслеживают логи и заносят в чёрный список удаленных пользователей после нескольких неудачных попыток войти в систему. Использование подобных программ необходимо для укрепления защиты систем, подвергающихся частым атакам.

Смотрите также

 * Руководство Gentoo Linux Keychain
 * autossh — обнаруживает обрыв SSH-соединения и автоматически переподключается.
 * SCP — программа для безопасного копирования, поставляемая вместе с набором программ SSH.
 * SFTP — клиент протокола безопасной передачи файлов, поставляемый вместе с набором программ SSH.
 * SSHFS — клиент для монтирования FUSE-разделов по SSH.

Внешние источники

 * Securing OpenSSH — документация разработчика Gentoo.
 * OpenSSH Key Management Part1 — документация Gentoo, прочитайте все три части.