SSH/ru

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

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

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

Установка
Большинство развернутых систем уже имеют установленный OpenSSH (из-за пакета ). Данный пакет использует следующие USE флаги

После изменения USE флагов не забудьте пересобрать OpenSSH:

Сервер
Добавьте openssh к уровню запуска по умолчанию, если вы этого еще не сделали.

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

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

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

При первом запуске сервиса SSH будут сгенерированы системные ключи. Ключи можно сгенерировать заново (перегенерировать), используя команду.

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

Для генерации ключей протокола SSH версии 2 (алгоритмы DSA и RSA):

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

Вы также можете изучить этот гайд для конфигурации, ориентированной на безопасность.

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

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

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

Клиент
На вашем клиенте запустите

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

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

Если что-то пошло не так
Существует 3 различных уровня отладки. -v заставляет ssh печатать отладочные сообщения о своей работе. Это полезно при отладке соединения, проблемах с аутентификацией и конфигурацией. Несколько опций -v увеличивают количество сообщений. Максимально можно ввести 3 буквы v.

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

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

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

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

Проверьте данный сценарий, после удаленного логина:

Вы должны получить что-то похожее на "localhost:10.0", либо "localhost2.local:10.0", используя настройку сервера. Если вы получаете обычное ":0.0", проверьте, что вы не разыменовываете и не инициализируете переменную  в. Если да, то удалите, либо закомментируйте свою инициализацию, либо не дайте файлу  выполниться в процессе логина SSH:

Решением будет создать алиас в

Intrusion Prevention
ssh is a commonly attacked service. sshguard & fail2ban monitor logs and black list remote users who have repeatedly failed to login.

Смотри также

 * Securing OpenSSH - Документация Gentoo-разработчика
 * OpenSSH Key Management Part1 - Документация Gentoo, просмотрите все 3 части.
 * [KeyChain|Гайд по авторизации по ключам Gentoo Linux]
 * autossh - Определяет, когда соединение SSH обрывается, и заново подсоединяется.