SSH работает через любой 8-битный чистый двоично-прозрачный транспорт.Базовый транспорт ДОЛЖЕН защищать от ошибок передачи, поскольку такие ошибки приводят к разрыву соединения SSH.Клиент инициирует соединение.
4.1.Использование по TCP / IP
При использовании по TCP / IP сервер обычно прослушивает соединения через порт 22 * 1015 *.Этот номер порта был зарегистрирован в IANA и был официально назначен для SSH.
4.2.Версия протокола обмена
Когда соединение установлено, обе стороны ДОЛЖНЫ отправить идентификационную строку .Эта идентификационная строка ДОЛЖНА быть
SSH-protoversion-softwareversion SP комментарии CR LF
Поскольку протокол, определяемый в этом наборе документов, - это версия 2.0, «протоверсия» ОБЯЗАНА быть «2.0».Строка 'comments' является необязательной.Если включена строка 'comments', символ 'пробел' (обозначенный выше как SP, ASCII 32) ДОЛЖЕН разделять строки 'softwareversion' и 'comments'.Идентификация ДОЛЖНА заканчиваться одним символом возврата каретки (CR) и одним символом перевода строки (LF) (ASCII 13 и 10 соответственно).Разработчики, желающие сохранить совместимость с протоколом стандартов Ylonen & Lonvick [Страница 4] Протокол транспортного уровня SSH RFC 4253, январь 2006 г., со старыми недокументированными версиями этого протокола могут захотеть обработать строку идентификации, не ожидая присутствия символа возврата каретки по описанным причинамв разделе 5 этого документа.Нулевой символ НЕ ДОЛЖЕН быть отправлен.Максимальная длина строки составляет 255 символов, включая возврат каретки и перевод строки.
Часть строки идентификации, предшествующая возврату каретки и переводу строки, используется в обмене ключами Диффи-Хеллмана (см. Раздел 8).).
Сервер МОЖЕТ отправить другие строки данных перед отправкой строки версии.Каждая строка ДОЛЖНА заканчиваться возвратом каретки и переводом строки.Такие строки НЕ ДОЛЖНЫ начинаться с "SSH-" и ДОЛЖНЫ быть закодированы в ISO-10646 UTF-8 [RFC3629] (язык не указан).Клиенты ДОЛЖНЫ иметь возможность обрабатывать такие строки.Такие строки МОГУТ игнорироваться или МОГУТ отображаться пользователю клиента.Если они отображаются, то следует использовать фильтрацию управляющих символов, как описано в [SSH-ARCH].Основное использование этой функции - позволить TCP-оболочкам отображать сообщение об ошибке перед отключением.
Обе строки 'protoversion' и 'softwareversion' ДОЛЖНЫ состоять из печатных символов US-ASCII, за исключением пробеловсимволы и знак минус (-).Строка 'softwareversion' в основном используется для запуска расширений совместимости и для указания возможностей реализации.Строка 'comments' ДОЛЖНА содержать дополнительную информацию, которая может быть полезна при решении пользовательских проблем.Таким образом, примером допустимой идентификационной строки является
SSH-2.0-billsSSH_3.6.3q3
Эта идентификационная строка не содержит необязательную строку 'comments' итаким образом, завершается символами CR и LF сразу после строки 'softwareversion'.
Обмен ключами начинается сразу после отправки этого идентификатора.Все пакеты, следующие за идентификационной строкой, ДОЛЖНЫ использовать двоичный пакетный протокол, который описан в разделе 6.