OpenSSH
Данная статья является устаревшей, поскольку: в новый стиль и до английского варианта. Если она в течение некоторого времени не будет обновлена, то она может быть удалена. Пожалуйста, обновите эту статью. Обратитесь к странице обсуждения этой статьи для получения подробной информации. |
OpenSSH (Открытый безопасный Shell) является набор программ предоставляющих шифрование сеансов связи по компьютерным сетям с использованием протокола SSH. Он был создан как открытая альтернатива закрытого Secure Shell software. Этим проектом руководил Theo de Raadt из Calgary, Alberta.
Содержание
История
OpenSSH был создан командой OpenBSD как альтернатива SSH, который все еще является закрытым ПО. Разработчики OpenSSH утверждают что он более безопасен чем оригинальный Secure Shell, благодаря их политике чистки и аудита кода, и фактически слово open в имени пакета обозначает что пакет размещается под открытой BSD лицензией. Хотя код также доступен для оригинального SSH, различные ограничения накладываемые на его использование делают OpenSSH более привлекательным проектом для большинства программистов.
OpenSSH впервые появился в OpenBSD 2.6. OpenSSH 4.3 был анонсирован 1-го февраля, 2006 [1].
Торговые марки
В феврале 2001, Tatu Ylönen, Chairman и CTO of SSH Communications Security сообщили через почтовую рассылку OpenSSH, openssh-unix-dev@mindrot.org, что после общения с ведущими разработчиками OpenSSH и в частности с Markus Friedl, Theo de Raadt, и Niels Provos компания утвердила право собственности на SSH и Secure Shell торговых марок. Tatu также искало возможность изменить название протокола на SecSH или secsh, они предложили сменить имя OpenSSH если те не хотят судебных разбирательств. Theo de Raadt сразу отмел возможность изменения названия проекта.
В это время , "SSH", "Secure Shell" и "ssh" были использованы в документах предлагающих протокол как открытый стандарт и было выполнено много работы без принадлежности к торговым маркам, Tatu отказался от всех прав на имя, так как оно подразумевало сам протокол. Это потому что в США имена торговых марок не должны быть именами существительными и глаголами. Неправильно использовать торговую марку или допускать другим неверно использовать торговую марку, в результате торговая марка становится общим названием продукта как Kleenex или Aspirin, которое открыто может использоваться другими.
Также в вопросах прозвучало, если имя "ssh" торговая марка или логотип, то можно ли использовать маленькие буквы "ssh", множество online знатоков подтвердили последнее после изучения базы the USPTO trademark и также добавили сомнений в правильности претензий, ведь прошло уже 6 лет когда компания была создана и тем моментом когда она начала защищать торговую марку от свободных альтернатив вроде OpenSSH, и что только OpenSSH подвергся их судебным нападкам.
Оба разработчика OpenSSH и Ylönen были членами рабочей группы IETF разрабатывающей новые стандарты, которые после небольшого обсуждения отвергла любые притязания Ylonen на переименование протокола ссылаясь на то что создаст нежелательный прецендент для других торговых марок против IETF. Члены рабочей группы оспаривали что оба Secure Shell и SSH являются базовыми понятиями и они не могут являться торговыми марками.
Переносимость
Частично потому что OpenSSH необходимо выполнять аутентификацию, выполнение которой может сильно отличаться на различных операционных системах, была создана сильная инфраструктура переносимости. Вскоре, то что включалось напрямую в OpenBSD и OpenSSH было выделено в отдельную часть - OpenSSH Portability Team и анонсировалось как "portable releases". Эта модель также использовалась и для других проектов OpenBSD, например OpenNTPD.
Состав
Набор OpenSSH содержит следующие инструменты:
ssh user@example.com
scp user@example.com:~/somefile .
sftp user@example.com
- sshd, the SSH daemon:
sshd
Безопасные туннели
Перенаправление портов
Большинство программ устанавливающие соединения используют TCP, который можно передавать через безопасный туннель используя OpenSSH. Так можно устанавливать множество дополнительных TCP соединений внутри одного ssh соединения. Это удобно для сокрытия соединений и шифрования протоколов которые являются небезопасными и для обхода фаерволла. UDP соединения иногда тоже возможно туннелировать с дополнительными программами такой как netcat. Пример программ простых для туннелирования X Window System, http с использованием proxy и VNC. Для X Window System туннель часто создается автоматически между двумя Unix машинами, так GUI программы с удаленного компьютера могут быть запущены простым вводом их имен:
ssh -Y user@example.com password: $ xclock
В дополнение некоторое ПО может автоматически использовать OpenSSH для создания туннеля. Например DistCC, CVS, rsync, и fetchmail. Из программ которые возможно туннелировать, но немного сложней являются ftp,, которую в любом случае очень часто можно заменить sftp, и SMB. В некоторых оерационных системах удаленные файловые системы можно монтировать через ssh использую shfs, lufs или podfuk.
SOCKS
OpenSSH возможно использовать и как ad hoc SOCKS прокси сервер поддерживающий более гибкое проксирование чем просто перенаправление портов. Например :
ssh -D1080 user@example.com
создает локальный SOCKS сервер который ждет подключения на "localhost:1080".
VPN использующие tun
Начиная с версии 4.3, OpenSSH можно использовать на уровнях OSI 2/3 для "tun" построенных VPN. Это наиболее гибкая возможность туннелирования OpenSSH, позволяет приложениям прозрачно получать доступ к ресурсам удаленной сети без «соксификации»(socksification).
Авторизация
OpenSSH сервер может авторизировать пользователей используя встроенные системы авторизаци:
- публичные ключи,
- клавиатурный ввод (пароли и запрос-ответ), и
- Kerberos/GSSAPI.
В дополнение OpenSSH часто может использовать дополнительные методы авторизации доступные в конкретной операционной системе узла. Вы можете использовать и систему авторизации BSD (bsd_auth) или PAM для того чтобы использовать одноразовыми пароли например.
Один из недостатков использования OpenSSH с PAM то что его необходимо запускать с правами root чтобы включить поддержку PAM, так как привилегии root обычно необходимы для управления PAM. OpenSSH версии позднее 3.7 позволяют отключать PAM во время выполнения для того чтобы запускать sshd от имени обычного пользователя.