Windows 10 v1803: где находится клиент openssh?

Скачать «OpenSSH server for Windows»

Файл установки содержит только OpenSSH сервер, Cygwin компоненты и дополнительные UNIX утилиты для Windows, не содержит каких либо скрытых дверей (backdoor), «троянов» или других компьютерных вирусов!

Для снижения нагрузки на наш сервер файл установки размещён на «шаровом» файловом хостинге depositfiles.com. После получения файла проверьте совпадает ли хеш-сумма MD5 (выделена красным)!

Текущая версия OpenSSH:

opensshd_x86_installer_7.2p2(1.0.0).exeMD5: d251ff0e281d14d29e4e4c6bafb763b3

Неплохой альтернативой может быть http://www.bitvise.com/winsshd, но мне лично больше нравится OpenSSH в среде Cygwin, где есть оболочка BASH, где можно удобно использовать псевдонимы, а также другие полезные UNIX программы и всё это работает вместе со стандартным набором Windows программ! Мой выбор однозначно в пользу OpenSSH.

Дополнительная информация:

  • http://ru.wikipedia.org/wiki/OpenSSH
  • http://ru.wikipedia.org/wiki/Cygwin

ssh-agent сканер

Security Task Manager показывает все запущенные сервисы Windows, включая внедренные скрытые приложения (например, мониторинг клавиатуры или браузера, авто вход). Уникальный рейтинг надежности указывает на вероятность того, что процесс потенциально может быть вредоносной программой-шпионом, кейлоггером или трояном.

Бесплатный aнтивирус находит и удаляет неактивные программы-шпионы, рекламу, трояны, кейлоггеры, вредоносные и следящие программы с вашего жесткого диска. Идеальное дополнение к Security Task Manager.

Reimage бесплатное сканирование, очистка, восстановление и оптимизация вашей системы.

Другие процессы

qwesttoolbardx.dll offsyncservice.exe capuserv.exe ssh-agent.exe fbconsole.exe orderreminder.exe cancelautoplay_df.exe sailicsvr.exe linkdel.cmd protect.exe dwarkdaemon.exe

Безопасные туннели

Перенаправление портов

Большинство программ для установления соединения используют протокол TCP, трафик которого можно передавать через безопасный туннель. Таким образом можно устанавливать множество дополнительных TCP-соединений поверх одного SSH-соединения. Это удобно для сокрытия соединений и шифрования протоколов, которые являются небезопасными, а также для обхода ограничений фаерволлов. UDP-соединения иногда тоже возможно туннелировать при помощи дополнительных программ, таких как netcat. Простыми для туннелирования являются такие протоколы как, например, HTTP, POP3 и VNC.

Перенаправление портов возможно в любую сторону.

Кроме того, некоторое ПО может автоматически использовать OpenSSH для создания туннеля. Например DistCC, CVS, rsync, и fetchmail.

Из протоколов, которые сложнее туннелировать, стоит отметить FTP, который часто можно заменить SFTP, и SMB. В некоторых операционных системах удаленные файловые системы можно монтировать через ssh используя shfs, lufs и другие аналогичные компоненты.

X Window System

OpenSSH позволяет безопасно организовывать подключения к X Window System с учётом «переворота» семантики: хост-клиент SSH для X Window System является сервером, и наоборот. Для этого OpenSSH осуществляет дополнительные операции вроде установки переменной окружения DISPLAY.

SOCKS

OpenSSH возможно использовать как специальный SOCKS прокси сервер поддерживающий более гибкое проксирование, чем просто перенаправление портов.

VPN

Начиная с версии 4.3, OpenSSH может использовать туннельные сетевые интерфейсы 2-го и 3-го уровней модели OSI (tun). Таким образом можно организовать защищённую VPN и обойтись без необходимости переделки приложений для поддержки SOCKS.

1.2 — Почему его надо использовать?

OpenSSH это набор программ для обеспечения безопасной работы в сети, ниже приводится список предоставляемых возможностей этого инструментария:

  • Строгая авторизация. Исправлено большое число дыр в безопасности. (например IP, routing, и DNS spoofing).
  • Усилена безопасность. Все соединения автоматически и прозрачно шифруются.
  • Безопасная работа X11 сессий. Программы автоматически устанавливают переменную DISPLAY на удаленном сервере, и перенаправляют любые соединения X11 по защищенным шифрованным каналам.
  • Произвольные TCP/IP порты могут быть перенаправлены через шифрованные каналы в обоих направлениях (например, для e-cash транзакций).
  • Нет необходимости переподготовки обычных пользователей.
  • Никогда не доверять сети. Минимальное доверие соединению с удаленной стороны. Минимальное доверие серверам доменных имен. Чистая RSA авторизация не доверяет ничему кроме личных ключей.
  • Клиент авторизует сервер по RSA в начале каждого соединения для защиты от трянских коней (routing или DNS spoofing) и man-in-the-middle атак, и сервер в свою очередь авторизует по RSA клиента, до принятия авторизации через .rhosts или /etc/hosts.equiv чтобы в свою очередь защитить себя от атак (DNS, routing, или IP-spoofing).
  • Распространение публичных ключей хостов может проводиться централизованно администраторами сети или автоматически при установлении с этим хостом первого соединения.
  • Любой пользователь может создать любое необходимое для своих нужд количество авторизационных ключей RSA.
  • Программа сервер имеет свой собственный RSA ключ сервера который автоматически изменяется, по умолчанию каждый час.
  • В дополнение можно использовать авторизационный агент чтобы хранить в памяти RSA авторизационные ключи пользователя лаптопа, нотбука или рабочей станции.
  • OpenSSH может быть установлен и использован (с некоторыми ограничениями) даже без привилегий суперюзера root.
  • Конфигурация клиентской части может быть изменена как в соответствующих системных конфигурационных файлах, так и в конфигурационных файлах самих пользователей.
  • В случае если на удаленном сервере не используется или не работает серверная программа sshd, клиент автоматически попытается перейти на работу через rsh если он поддерживается сервером и при этом будет выдано соответствующее сообщение.
  • При работе может быть использована компрессия всех данных посредством использования gzip (включая форвардирование соединений X11 и перенаправление TCP/IP портов), причем компрессия может значительно повысить скорость работы, особенно на медленных соединениях/каналах.
  • Полная замена средств rlogin, rsh, и rcp.

На настоящий момент, почти все коммуникации в компьютерных сетях сделаны
без шифрации. И как результат, любой кто имеет доступ к компьютеру подключенномув сеть сможет подслушать практически любые сетевые соединения. Этим методом могут воспользоваться хакеры, любопытные системные администраторы, предприниматели, криминальные элементы, промышленные шпионы или правительственные службы. Некоторые сети и компьютерное оборудование имеют достаточное электромагнитное излучение благодаря которому данные могут быть сняты даже на расстоянии.

Когда вы осуществляет заход на удаленный компьютер в сети, ваш пароль передается в сети открытым текстом. Поэтому любой подслушавший ваш login и пароль в сети, сможет им воспользоваться чтобы сделать любую гнусность которую он пожелает. Большинство подобных инцендентов наблюдалось на тех компьютерах в сети, которые остались без компетентного администрирования и на них были установлены программы прослушивания сети и сбора паролей. Подобные программы свободно доступны в сети Internet или могут быть написаны компетентным программистом за несколько часов.

Существует масса секретной информации, коммерческие тайны, патенты на изобретения, закрытая информация о ценах, информация о подрядчиках и контрактерах, данные клиентов, личные данные, финансовая информация и т.д. и т.п. И в настоящее время, любой кто имеет доступ к сети (любой компьютер в сети) может подслушать все что передается по сети, без каких-либо ограничений доступа.

Многие компании не представляют что информация так легко может быть извлечена при наличии доступа в сеть. Они полагают что их данные в безопасности потому что никому не известно что информация в сети может быть подслушана или потому что количество передаваемых в сети данных слишком велико. Это не безопасная политика.

Состав

Набор OpenSSH содержит следующие компоненты:

ssh
Замена для rlogin и telnet.
scp
Замена для rcp, использующая в современных версиях OpenSSH протокол SFTP (ранее использовался менее надёжный и гибкий SCP).
sftp
Замена для FTP-клиента, использующая протокол SFTP.
sshd
Демон, собственно предоставляющий защищённый доступ к ресурсам. Включает реализацию серверной части SFTP, пригодную для организации chroot-доступа для пользователей без необходимости копирования каких-либо файлов внутрь chroot.
sftp-server
Отдельная реализация подсистемы SFTP (серверная часть). Обладает бо́льшими возможностями, чем встроенная в sshd.
ssh-keygen
Генератор пар ключей.
ssh-keysign
Утилита для проверки ключей хостов. Задействуется при использовании аутентификации по хостам (аналогично rsh) вместо проводимой по умолчанию аутентификации по пользователям.
ssh-keyscan
Вспомогательная утилита. Позволяет собирать публичные ключи с других хостов.
ssh-agent
Вспомогательная утилита. Поддерживает кэш закрытых ключей. Кэширование позволяет избегать частого ввода пароля для расшифровки ключей перед их использованием.
ssh-add
Вспомогательная утилита. Добавляет ключи в кэш ssh-agent.

Настройка SSH сервера в Windows

После уставной сервера OpenSSH в Windows вам нужно изменить тип запуска службы sshd на автоматический и запустить службу с помощью PowerShell:

С помощью nestat убедитесь, что теперь в системе запущен SSH сервер и ждет подключений на 22 порту:

Проверьте, что включено правило брандмауэра (Windows Defender Firewall), разрешающее входящие подключения к Windows по порту TCP/22.

Name DisplayName Description Enabled
---- ----------- ----------- -------
OpenSSH-Server-In-TCP OpenSSH SSH Server (sshd) Inbound rule for OpenSSH SSH Server (sshd) True

Если правило отключено (состоянии Enabled=False) или отсутствует, вы можете создать новое входящее правило командой New-NetFirewallRule:

По умолчанию важным компоненты OpenSSH хранятся в следующих каталогах:

  • Исполняемые файлы OpenSSH Server:
  • Конфигурационный файл sshd_config (создается после первого запуска службы):
  • Журнал OpenSSH:
  • Файл authorized_keys и ключи:

При установке OpenSSH сервера в системе создается новый локальный пользователь sshd.

Вход в систему

После успешной аутентификации пользователя выполняет следующие действия:

  • Если регистрация в системе произведена на терминале (tty) и не указана никакая команда, то отображается время последнего входа в систему и содержимое файла /etc/motd (если только это не отключено в файле конфигурации или ~/.hushlogin).
  • Если регистрация в системе произведена на терминале, записывается время регистрации.
  • Проверяется /etc/nologin, если он присутствует, выводится его содержимое и завершается работу (исключение — root).
  • Осуществляется переход к выполнению с правами обычного пользователя.
  • Устанавливаются значения основных переменных среды.
  • Интерпретируется файл ~/.ssh/environment, если таковой имеется, и пользователям разрешено изменять среду.
  • Переходит в домашний каталог пользователя.
  • Если имеется файл ~/.ssh/rc, то производится его выполнение, а если нет и имеется /etc/ssh/sshrc, то выполняется он, в противном случае выполняется   Файлам ‘rc’ на стандартный ввод передаётся протокол аутентификации Х11 и cookie.
  • Запускается оболочка пользователя или выполняется указанная команда.

Формат файла ssh_known_hosts

В файлах /etc/ssh/ssh_known_hosts и ~/.ssh/known_hosts хранятся открытые ключи всех машин, с которыми когда-либо устанавливалась связь. Глобальный файл должен быть подготовлен администратором (это необязательно), пользовательский файл поддерживается автоматически: каждый раз, когда поступает запрос на соединение от неизвестной машины, её ключ автоматически заносится в пользовательский файл.

Каждая строка в этом файле содержит следующие поля: имена хостов, битность, порядок, модуль, комментарий. Поля разделены пробелами.

Имена хостов — это разделённый запятыми список шаблонов (символы подстановки — (‘*’ и ‘?’); каждый шаблон сопоставляется с каноническим именем машины (при аутентификации клиента) или с именем, которое указано пользователем (при аутентификации сервера). Этот шаблон может также быть предварён знаком ‘!’ для обозначения отрицания: если имя машины соответствует отрицаемому шаблону, оно будет отвергнуто (этой строкой) даже если оно соответствует другому шаблону в этой же строке. Также можно, заключив имя хоста или IP-адрес в квадратные скобки — ‘,’ — через ‘:’ указать нестандартный порт.

Вместо имён хостов можно записывать их хэши. Это позволит скрыть их от злоумышленника в случае попадания файла в его руки. Для различия хэшей от имён хостов первые предваряются символом ‘|’. На одной строке может быть не больше одного хэша, операция отрицания в этом случае не доступна.

Разрядность, порядок и модуль копируются из ключа хоста RSA, например, /etc/ssh/ssh_host_key.pub. Необязательное поле комментария занимает всю оставшуюся часть строки и игнорируется.

Комментариями также считаются пустые и строки начинающиеся с ‘#’.

Идентификация машины принимается, если любая совпавшая строка содержит правильный ключ. Таким образом, можно (хотя это не рекомендуется) иметь несколько строк или различных ключей для одного и того же хоста. Это неизбежно случается при помещении в файл кратких форм имён хостов из различных доменов. В файлах может содержаться противоречивая информация. Идентификация принимается, если адекватная информация имеется в любом из них.

Заметьте, что строки в этих файлах, обычно имеют длину в несколько сотен символов и, очевидно, не стоит вводить имена хостов вручную. Вместо этого их можно сгенерировать при помощи сценария оболочки или взять из файла / etc/ssh/ssh_host_key.pub, добавив в начале имя хоста.

Пример файла ssh_known_hosts:

# допустимы явные комментарии только на всю строку
closenet       192.0.2.53 1024 37 159...93 closenet.example.net
cvs.example.net,192.0.2.10 ssh-rsa AAAA1234 =
# хэш имени хоста
|1|JfKTdBh7rNbXkVAQCRp4OQoPfmI=|USECr3SWf1JUPsms5AqfD5QfxkM= ssh-rsa
AAAA1234 =

1.4 — Какие соглашения у OpenSSH о copyright(правах), использовании и патентах?

Разработчики OpenSSH приложили много труда и усилий чтобы сохранить этот проект свободным от каких либо патентов или проблем с copyright. Чтобы реализовать это пришлось наложить ограничения для некоторых опций, а именно, для запатентованных алгоритмов.

OpenSSH не поддерживает запатентованные транспортные алгоритмы. В режиме работы SSH1, поддерживаются опции для 3DES и Blowfish. В режиме работы SSH2, можно использовать лишь алгоритмы 3DES, Blowfish, CAST128, Arcfour и AES. Запатентованный алгоритм IDEA не поддерживается.

OpenSSH обеспечивает поддержку обоих протоколов и SSH1, и SSH2.

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

История

OpenSSH был создан командой OpenBSD как альтернатива SSH, который все ещё является проприетарным ПО. Разработчики OpenSSH утверждают, что он более безопасен чем оригинальный Secure Shell, благодаря их политике чистки и аудита кода. Хотя исходный код также длительное время был доступен для оригинального SSH, ограничения его лицензии изначально делали OpenSSH более привлекательным проектом для большинства программистов.

OpenSSH впервые появился в OpenBSD 2.6.

В версии 5.9 вышедшей 6 сентября 2011 появился экспериментальный режим «песочницы», с ограничениями на определённые системные вызовы. Цель этого — предотвращение атаки на другие узлы сети, например, посредством запуска прокси или открытия сокетов.

Торговые марки

В то же время, «SSH», «Secure Shell» и «ssh» были использованы в документах определяющих протокол как открытый стандарт и было проделано много работы без принадлежности к торговым маркам. Были высказаны сомнения в правильности претензий, ведь прошло уже 6 лет с создания компании и тем моментом, когда она начала защищать торговую марку от свободных альтернатив, вроде OpenSSH, и что только OpenSSH подвергся их судебным нападкам.

Оба разработчика OpenSSH и Илонен были членами рабочей группы IETF, разрабатывающей новые стандарты, которые после небольшого обсуждения отвергла любые притязания Илонена на переименование протокола, ссылаясь на то, что это создаст нежелательный прецедент для других торговых марок. Члены рабочей группы утверждали, что обозначения «Secure Shell» и «SSH» являются базовыми понятиями и не могут являться торговыми марками.

Установка сервера OpenSSH в Windows

Рассмотрим, как установить компонент OpenSSH Server в Windows 10 1903 (Windows Server 2019 все выполняется аналогично).

Пакет OpenSSH (как и RSAT) уже включен в данные версии Windows в виде Feature on Demand (FoD).

При наличии прямого Интернет-подключения вы можете установить сервер OpenSSH с помощью PowerShell

Или при помощи DISM:

В Windows 10 этот компонент также можно установить через панель Параметры (Приложения -> Управление дополнительными компонентами -> Добавить компонент). Найдите в списке Open SSH Server и нажмите кнопку Install).

Чтобы проверить, что OpenSSH сервер установлен, выполните:

State : Installed

History

OpenBSD Secure Shell was created by OpenBSD developers as an alternative to the original SSH software by Tatu Ylönen, which is now proprietary software. Although source code is available for the original SSH, various restrictions are imposed on its use and distribution. OpenSSH was created as a fork of Björn Grönvall’s OSSH that itself was a fork of Tatu Ylönen’s original free SSH 1.2.12 release, which was the last one having a license suitable for forking. The OpenSSH developers claim that their application is more secure than the original, due to their policy of producing clean and audited code and because it is released under the BSD license, the open-source license to which the word open in the name refers.

OpenSSH first appeared in OpenBSD 2.6. The first portable release was made in October 1999. Developments since then have included the addition of ciphers (e.g., chacha20-poly1305 in 6.5 of January 2014), cutting the dependency on OpenSSL (6.7, October 2014) and an extension to facilitate public-key discovery and rotation for trusted hosts (for transition from DSA to Ed25519 public host keys, version 6.8 of March 2015).

On 19 October 2015, Microsoft announced that OpenSSH will be natively supported on Microsoft Windows and accessible through PowerShell, releasing an early implementation and making the code publicly available. OpenSSH-based client and server programs have been included in Windows 10 since version 1803. The SSH client and key agent are enabled and available by default, and the SSH server is an optional Feature-on-Demand.

In October 2019 protection for private keys at rest in RAM against speculation and memory side-channel attacks were added in OpenSSH 8.1.

Переносимость

Частично потому, что OpenSSH необходимо выполнять аутентификацию, выполнение которой может сильно отличаться на различных операционных системах, была создана мощная инфраструктура для обеспечения переносимости. То, что не включалось напрямую в OpenBSD, было выделено отдельно группой разработчиков в составе Дамьена Миллера (англ. Damien Miller), Филиппа Хэндса (англ. Philip Hands) и других как субпроект OpenSSH Portable. Теперь параллельно и одновременно с релизом OpenSSH «для OpenBSD» стали выпускаться так называемые «portable releases». Эти релизы обозначаются в конце буквой «p», например: OpenSSH_5.1p1. Такая организация процесса разработки позднее стала использоваться и в других проектах, разрабатываемых внутри OpenBSD, например, OpenNTPD.

Как пользоваться PuTTY

1. Интерфейс программы

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

Рассмотрим за что отвечают те или иные вкладки программы, чтобы вы ориентировались что и где искать. У нас есть четыре вкладки:

  • Session — отвечает за подключение удаленному серверу, тут мы вводим параметры подключения, порт, адрес, а также можем сохранить все настройки putty, чтобы не настраивать каждый раз заново.
  • Terminal — позволяет включать или отключать возможности терминала;
  • Window — настройка внешнего вида окна, цвет, шрифт, кодировка;
  • Connection — настройка параметров подключения, алгоритма шифрования, сжатия, ключей аутентификации, X11 и других параметров.

Каждая вкладка имеет несколько подразделов, но мы не будем сейчас их трогать, а перейдем сразу к практике и посмотрим как подключиться putty к удаленному узлу.

2. Подключение к удаленному компьютеру PuTTY

Чтобы подключиться к удаленному компьютеру по SSH перейдите на вкладку «Session», здесь, в поле «Host Name» необходимо прописать ip адрес или имя хоста, компьютера, к которому вы хотите подключиться, в поле порт — нужно указать порт, на котором запущен SSH сервер, по умолчанию используется порт 22:

Далее, нажмите кнопку «Open». После этого появится запрос на добавление ключа сервера в список доверенных ключей, нажмите «Да»:

Затем вам будет нужно ввести логин пользователя и пароль

Важно заметить, что скопировать логин или пароль у вас не получится, необходимо только вводить вручную:

Теперь авторизация прошла успешно, и вы можете выполнять нужные действия на сервере:

3. Сохранение сессии PuTTY

Чтобы не вводить каждый раз ip и порт можно сохранить эти данные в виде сессии, для этого пропишите новое имя в поле «Saved Sessions», а затем нажмите кнопку «Save»:

Теперь вы сможете загрузить сохраненную сессию, нажав кнопку «Load».

После того как будет завершена настройка putty и все параметры будут выставлены правильно вы можете сохранить настройки и не вводить их несколько раз.

4. Имя пользователя по умолчанию

Вы можете не вводить имя пользователя каждый раз, для этого перейдите на влкадку «Connection», затем «Data» и в поле «Auto-login Username» пропишите имя пользователя, например, root:

Теперь подключение putty будет выполняться от имени этого пользователя.

5. Авторизация по ключу ssh в PuTTY

Чтобы не вводить каждый раз пароль можно настроить авторизацию по ключу. В Linux такая возможность используется очень широко потому что это удобно. Первым делом необходимо создать ключ. Для этого запустите утилиту PuTTYgen и установите переключатель в положение «SSH-2 RSA» нажмите «Generate»:

Обязательно ключ должен быть SSH-2 RSA, если в главном окне нет, выберите в меню «Key». Подвигайте мышкой, чтобы создать достаточное количество энтропии:

Ключ готов, затем, с помощью кнопок «Save Public Key» и «Save Private Key» сохраните оба ключа.

Далее, откройте PuTTY, перейдите на вкладку «Connection», затем «SSH», затем «Auth»:

Здесь необходимо нажать кнопку «Browse» и добавить недавно сохраненный приватный ключ:

Далее, возвращаемся на вкладку «Session», выбираем наше сохранение и нажимаем «Save» чтобы сохранить настройки. Осталось только отправить наш открытый ключ на сервер. Для этого авторизуйтесь на нем с помощью пароля и открытый ключ вставьте ключ в конец файла /root/.ssh/authorized_keys.

Ключ можно брать прямо из окна PuTTYgen «Public key for pasting» или из файла открытого ключа:

Все, теперь можно выходить и авторизоваться снова. На этот раз подключение по ssh putty будет выполняться с помощью нашего ключа. Не забывайте сохранять настройки сессии, чтобы не выбирать ключ каждый раз. Теперь вы знаете как пользоваться программой putty, рассмотрим еще передачу файлов.

5. Передача файлов через scp в PuTTY

Не все знают, но PuTTY позволяет передавать файлы через ssh также как это делает linux с помощью утилиты scp. Нажмите Win+R, затем пропишите cmd, чтобы запустить командную строку.

Синтаксис утилиты pcsp выглядит следующим образом:

pscp опции путь_файлу имя_пользователя@хост/путь/к/файлу/на/удаленном/хосте

Например, мы можем отправить файл из текущей папки в папку пользователя /root/:

С помощью опции -P можно задать удаленный порт:

А опция load позволяет загрузить сохраенные настройки сессии PuTTY:

Теперь вы знаете как использовать putty для передачи файлов.

Лучшие практики для исправления проблем с ssh-agent

Следующие программы так же полезны для грубокого анализа: Security Task Manager исследует активный процесс ssh-agent на вашем компьютере и явно говорит, что он делает. Malwarebytes’ — популярная антивирусная утилита, которая сообщает вам, если ssh-agent.exe на вашем компьютере отображает назойливую рекламу, замедляя быстродействие компьютера. Этот тип нежелательной рекламы не рассматривается некоторыми антивирусными программами в качестве вируса и таким образом не удаляется при лечении.

Чистый и аккуратный компьютер является ключевым требованием для избежания проблем с ПК. Это означает: проверка на наличие вредоносных программ, очистка жесткого диска, используя cleanmgr и sfc /scannow, удаление программ, которые вам больше не нужны, проверка Автозагрузки (используя msconfig) и активация Автоматического обновления Windows. Всегда помните о создании периодических бэкапов, или как минимум о создании точек восстановления.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *