Доступ по SSH к Windows 7 через Cygwin
Быстрые ссылки
- Установка OpenSSH
- Настройка OpenSSH в Cygwin
- Конфигурация SSH для пользователя
- Небольшие проблемы и решение
Если вы знакомы с Linux/Unix и хотите получить SSH-доступ к машине с Windows 7, Cygwin даёт удобную оболочку и инструменты. Предполагается, что Cygwin уже установлен. Если нет, сначала прочитайте руководство «How To Use Linux Commands in Windows with Cygwin».
Установка OpenSSH
OpenSSH — это пакет, который нам нужен. Если вы ещё не добавляли его при установке Cygwin, запустите файл setup.exe из установочного набора Cygwin и продолжите установку.

На экране выбора пакетов найдите «open» и откройте раздел «Net». Вы увидите пакет «openssh». В колонке New (Новый) нажмите слово Skip несколько раз, пока в колонке Bin? не появится X. Затем нажмите Next и завершите установку так же, как при первоначальной установке.

Важно: оставляйте остальные настройки по умолчанию, если не уверены, что делаете.
Настройка OpenSSH в Cygwin
В Linux дистрибутивах OpenSSH часто настраивается автоматически. В Cygwin этого не произойдёт — нужно выполнить несколько команд вручную.
- Правый клик по ярлыку Cygwin и выберите “Запуск от имени администратора”.

Это нужно для создания системных учётных записей и установки службы. Откроется пустое окно терминала Cygwin.

- Введите команду конфигурации хоста:
ssh-host-config
Скрипт создаст необходимые файлы и задаст вопросы. Когда будет предложено включить Privilege Separation, ответьте “yes” — это стандартная и рекомендуемая опция безопасности.

- Скрипт предложит создать специальную привилегированную учётную запись. Выберите “yes”.

- Затем скрипт спросит, запускать ли sshd как системную службу. Для удобного доступа отвечайте “yes” — служба будет доступна даже если вы не запустили Cygwin вручную.

- Когда спросят значение для демона, введите:
ntsec
- Скрипт предложит имя учётной записи для привилегий по умолчанию — “cyg_server”. По умолчанию это безопасно и удобно, поэтому вы можете оставить значение по умолчанию (ответьте “no” на вопрос о смене имени).

- Введите пароль для созданной учётной записи. Помните, что пароль будет показан в явном виде для проверки, поэтому выполняйте эту операцию в безопасной обстановке.

Если всё прошло успешно, вы увидите сообщение об успешном завершении скрипта.

- Чтобы запустить службу sshd сразу, используйте команду Windows:
net start sshd
Затем можно закрыть этот экземпляр Cygwin командой exit.
Конфигурация SSH для пользователя
Теперь создадим ключи SSH для обычного пользователя.
- Откройте Cygwin от обычного пользователя (не обязательно от администратора) и выполните:
ssh-user-config
- Следуйте подсказкам. Выберите нужный тип ключей. Рекомендую SSH2 (более современно и безопасно). В примере автор ответил “no” на первый вопрос и “yes” на второй.

- Вас спросят, хотите ли вы использовать сгенерированный ID для доступа к машине — ответьте “yes”.

- Скрипт предложит создать SSH2 DSA ID для доступа без пароля. Это опционально; в примере автор выбрал “no”.

- Для быстрого теста выполните локальное подключение с параметром verbose:
ssh --v localhost
При первом подключении вы увидите запрос доверия к ключу хоста — ответьте “yes”, затем введите пароль. Учётные имена чувствительны к регистру.

Если всё настроено правильно, вы попадёте в обычную bash-сессию.
Небольшие проблемы и их решение
Important: на этапе настройки хоста обязательно запускать Cygwin с правами администратора. Без прав вы получите разные ошибки при создании системных учётных записей и установки службы.
- Если при выходе система спрашивает, оставлять ли фоновые задания, нажмите “no” чтобы завершить их.
- При ошибках со внешнего компьютера проверьте, не блокирует ли брандмауэр входящие соединения на порт 22 (стандартный порт SSH). Если вы используете SFTP на другом порту, проверьте соответствующий порт (например, 23 в примере автора — хотя 23 обычно отведён для Telnet; используйте стандартный 22 или явный нестандартный порт по назначению).
Теперь — дополнительные полезные разделы: чек-листы, отладка, безопасность и альтернативы.
Чек-листы
Чек-лист для администратора
- Запустить Cygwin от имени администратора.
- Установить пакет openssh через setup.exe.
- Выполнить ssh-host-config и ответить “yes” на привилег. аккаунты и запуск службы.
- Запустить net start sshd и проверить статус службы в Services.msc.
- Открыть порт в брандмауэре или создать правило входящего соединения.
Чек-лист для пользователя
- Выполнить ssh-user-config.
- Создать ключи (рекомендуется RSA или ED25519 в современных реалиях).
- Проверить подключение ssh –v localhost.
- При необходимости скопировать публичный ключ в ~/.ssh/authorized_keys.
Резервный чек-лист при проблемах
- Убедиться, что учётная запись cyg_server создана и активна.
- Проверить права файлов в /etc/ssh и ~/.ssh.
- Смотреть логи Cygwin в /var/log (или запустить sshd в foreground с -D для отладки).
Отладка — шаги и частые ошибки
- Проверьте статус службы:
net start | find "sshd"- Попробуйте временно запустить sshd в интерактивном режиме для просмотра логов:
/usr/sbin/sshd -D -eКлюч -D запускает в foreground, -e перенаправляет логи в stderr.
Если видите ошибки о правах доступа к файлам ключей — убедитесь, что файлы принадлежат правильным пользователям и имеют разрешения 600 для приватных ключей.
Проверьте, не конфликтует ли порт — убедитесь, что другой сервис не использует 22.
Безопасность и рекомендации по жёсткой настройке
- Используйте современные ключи: Ed25519 или RSA 3072/4096 при необходимости совместимости.
- Отключите аутентификацию по паролю для удалённых подключений, если используете ключи.
- Включите и проверьте Privilege Separation (обычно включён скриптом).
- Ограничьте доступ по IP в брандмауэре, если нужно.
- Регулярно обновляйте пакеты Cygwin и OpenSSH.
- Для производственных систем рассмотрите использование журнала аудита и централизованного сбора логов.
Альтернативы
- Win32-OpenSSH — реализация OpenSSH для Windows от Microsoft (поддерживается в более новых версиях Windows и в Windows Server).
- Bitvise SSH Server — коммерческий SSH/SFTP сервер для Windows с GUI.
- Использовать WSL (Windows Subsystem for Linux) на более новых Windows вместо Cygwin.
Когда этот подход не подходит
- На старых машинах с ограничениями безопасности лучше использовать специализированные Windows-серверы SSH.
- Если нужна поддержка Active Directory интеграции на уровне предприятия, рассмотрите решения с нативной интеграцией Windows.
Мини‑методология быстрой проверки работоспособности
- Убедиться, что служба sshd запущена: net start sshd.
- Локально выполнить ssh –v localhost; подтвердить доверие к хосту.
- Попробовать подключение с другого компьютера по адресу ipвашеймашины: ssh user@ip.
- При ошибках включить логирование sshd в foreground.
Критерии приёмки
- Сервис sshd запущен и доступен после перезагрузки.
- Можно подключиться локально через ssh –v localhost и удалённо с другого компьютера.
- Пользователь получает доступ в bash и видит монтированные диски в /cygdrive/ (например /cygdrive/c).
- Аутентификация работает: либо по паролю, либо по ключу — в соответствии с вашими настройками.
Команды-справочник
# Настройка хоста (админ):
ssh-host-config
# Запуск службы:
net start sshd
# Настройка пользователя:
ssh-user-config
# Тестирование с подробным выводом:
ssh --v localhost
# Запуск sshd в foreground для отладки:
/usr/sbin/sshd -D -eПример дерева решений для устранения проблем
flowchart TD
A[Не удаётся подключиться по SSH] --> B{Запущен sshd?}
B -- Да --> C{Порт открыт в брандмауэре?}
B -- Нет --> D[Запустить net start sshd и проверить ошибки]
C -- Да --> E{Правильный пользователь/пароль/ключи?}
C -- Нет --> F[Открыть порт 22 в брандмауэре или настроить перенаправление]
E -- Да --> G[Проверить логи sshd: /var/log или запуск в foreground]
E -- Нет --> H[Проверить ~/.ssh/authorized_keys и права файлов]Примечания
- Cygwin монтирует Windows-диски в /cygdrive/<буква диска>, например /cygdrive/c.
- Порт 22 — стандарт для SSH. Избегайте использования порта 23 для SFTP, так как 23 обычно используется Telnet.
Короткое заключение
Этот метод отлично подходит, если вы хотите иметь SSH/SFTP доступ к файлам на Windows 7 и работать в знакомой оболочке bash. Настройка достаточно прямолинейна: установить openssh, выполнить ssh-host-config и ssh-user-config, запустить службу и проверить подключение. Воспользуйтесь чек-листами и рекомендациями по безопасности, чтобы сделать подключение надёжным.
Summary:
- Установите openssh через setup.exe Cygwin.
- Выполните ssh-host-config от администратора и запустите sshd как службу.
- Выполните ssh-user-config для создания пользовательских ключей.
- Проверьте подключение локально и удалённо, настройте брандмауэр и права доступа.