Гид по технологиям

Как использовать SSH в Windows: PuTTY, PowerShell, Cygwin и SFTP

9 min read Сеть Обновлено 30 Dec 2025
SSH в Windows: PuTTY, PowerShell и SFTP
SSH в Windows: PuTTY, PowerShell и SFTP

Изображение: обзор SSH в Windows с логотипами клиентов и символами защищённого соединения

SSH (Secure Shell) — это зашифрованный сетевой протокол для безопасного подключения к устройствам по локальной сети или Интернету. На Linux и macOS SSH обычно предустановлен и доступен командой ssh в терминале. В Windows тоже есть несколько вариантов работы с SSH: встроенный OpenSSH в PowerShell, графические клиенты и приложения третьих сторон. В этой статье подробно разбираем каждый вариант, как настроить ключи, туннели, SFTP и как устранить распространённые проблемы.

Почему SSH нужен в Windows

SSH является стандартным инструментом для безопасного доступа к удалённым терминалам, управления серверами и передачи файлов. Примеры задач:

  • Удалённое администрирование Linux-серверов.
  • Доступ к терминалу виртуальной машины.
  • Безопасная загрузка и обновление веб-сайта через SFTP.
  • Настройка обратного прокси и туннелирование портов для разработки.

Телнет небезопасен, поскольку передаёт данные в открытом виде; SSH шифрует весь трафик. В Windows вы можете использовать нативный OpenSSH, PuTTY, расширения Chrome, Cygwin или SFTP-клиенты — выбор зависит от опыта и задачи.

Быстрая сводка клиентов

КлиентТипПодходит дляПлюсыМинусы
PuTTYГрафическийНачинающие, админыЛёгкий GUI, сохранение сессий, поддержка ключей (через PuTTYgen)Отдельный установщик, формат ключей .ppk
OpenSSH в PowerShellКомандная строкаОператоры, скриптыНативный, совместим с Linux-сценариямиМеньше GUI-инструментов
Secure Shell (Chrome)Веб/приложениеБыстрые подключения из браузераЗапускается в отдельном окне, кроссплатформенноОграничены возможности туннелирования
Cygwin OpenSSHКомандная строкаПользователи Linux-подходаПоведение как в Linux, знакомые утилитыБольшой объём установки, сложнее настраивать
FileZilla (SFTP)Графический для передачи файловВебмастера, контент-менеджерыПростой SFTP-интерфейсНе предназначен для интерактивного терминала

Важно: выбор зависит от целей — если вам нужен терминал и скрипты, выберите OpenSSH; если вы часто переносите файлы — FileZilla; для удобных одноразовых подключений — PuTTY.

1. PuTTY для рабочего стола Windows

Скриншот: окно PuTTY с настройками сессии и полями для хоста, порта и тегов соединения

PuTTY — самый распространённый SSH-клиент для Windows с графическим интерфейсом. Интерфейс может показаться перегруженным, но основные шаги просты.

Шаги для подключения:

  1. Скачайте putty.exe с официального сайта PuTTY и запустите.
  2. В поле Host Name введите IP-адрес или домен удалённого сервера.
  3. Укажите порт (по умолчанию 22) и убедитесь, что выбран протокол SSH.
  4. Нажмите Open.
  5. При первом подключении PuTTY попросит подтвердить хост-ключ — согласитесь (Accept).
  6. Введите имя пользователя и пароль.

Сохранение сессии:

  • В поле Saved Sessions введите имя сессии и нажмите Save. При следующем запуске выберите сессию и нажмите Load или двойной клик.

Аутентификация по ключу:

  • Сгенерируйте ключ с помощью PuTTYgen (входит в комплект PuTTY).
  • Экспортируйте закрытый ключ в формате .ppk для PuTTY и откройте Public key content чтобы скопировать публичную часть в ~/.ssh/authorized_keys на сервере.
  • В PuTTY: Connection → SSH → Auth → укажите путь к .ppk в поле Private key file for authentication.

Советы и ограничения:

  • PuTTY поддерживает туннелирование портов через Connection → SSH → Tunnels.
  • PuTTY не работает напрямую с OpenSSH private key форматом без конвертации через PuTTYgen.

Загрузка: PuTTY (Free)

Иллюстрация: окно PuTTY и подсказки по сохранению сессий и использованию PuTTYgen

2. Использование Windows PowerShell и встроенного OpenSSH

Иллюстрация: PowerShell с командой ssh и подсказками по установке компонента OpenSSH

В последних версиях Windows OpenSSH-клиент доступен как опция и может быть установлен через «Дополнительные компоненты». Это даёт вам нативную командную строку ssh, аналогичную Linux.

Как установить OpenSSH Client:

  1. Нажмите WIN + I чтобы открыть Параметры.
  2. Перейдите в Приложения → Приложения и возможности.
  3. Нажмите Дополнительные компоненты.
  4. Нажмите Добавить компонент.
  5. В списке найдите OpenSSH Client и установите.
  6. Перезагрузите систему при необходимости.

Базовое подключение:

ssh username@192.1.1.10

Генерация SSH-ключей в PowerShell:

ssh-keygen -t ed25519 -C "your_email@example.com"
# или
ssh-keygen -t rsa -b 4096

После генерации публичный ключ хранится в C:\Users\<ваш_пользователь>.ssh\id_ed25519.pub. Скопируйте его в ~/.ssh/authorized_keys на сервере. Если на сервере есть утилита ssh-copy-id, можно использовать её из WSL или Cygwin; иначе скопируйте вручную через SFTP или echo/append.

Использование агента ключей (ssh-agent):

Start-Service ssh-agent
ssh-add C:\Users\<ваш_пользователь>\.ssh\id_ed25519

Преимущества OpenSSH в PowerShell:

  • Прямое соответствие команд Linux, удобно для скриптов и автоматизации.
  • Поддержка современных алгоритмов (ed25519, rsa 4096).

Ограничения:

  • Нет графического интерфейса для удобного управления сессиями; нужно использовать сторонние менеджеры или конфигурацию ~/.ssh/config.

3. Secure Shell для Google Chrome

Secure Shell — расширение Chrome, которое представляет собой SSH-клиент в окне браузера. Работает оффлайн и полезно, если вы хотите быстро подключиться из аккаунта Chrome или на машине, где нельзя ставить ПО.

Как использовать:

  1. Установите Secure Shell из Chrome Web Store.
  2. Запустите приложение — откроется вкладка с терминалом.
  3. Введите логин и хост, либо строку подключения username@host.
  4. При необходимости добавьте дополнительные опции в строку подключения.

Ограничения:

  • Secure Shell ограничен в возможностях туннелирования по сравнению с PuTTY/OpenSSH.
  • Подходит для одноразовых и быстрых подключений.

Загрузка: Secure Shell App for Google Chrome

4. OpenSSH в Cygwin Terminal

Если вы привыкли к Linux-утилитам, Cygwin предоставляет большую среду POSIX-совместимых инструментов, включая OpenSSH.

Установка OpenSSH через Cygwin:

  1. Скачайте установщик Cygwin.
  2. Во время выбора пакетов найдите Net → OpenSSH и выберите версию вместо Skip.
  3. Продолжите установку.
  4. Запустите Cygwin Terminal и используйте привычную команду ssh.

Преимущества и недостатки:

  • Полнофункциональная среда UNIX-подобных утилит на Windows.
  • Большой объём установки и возможная сложность настройки для новичка.

Загрузка: Cygwin (Free)

5. SFTP с помощью FileZilla

Скриншот: FileZilla с окном менеджера сайтов и опцией выбора SFTP как протокола

Если основная задача — передача файлов, используйте SFTP через FileZilla. Это FTP поверх SSH: файлы передаются по зашифрованному каналу.

Как подключиться:

  1. Откройте File → Менеджер сайтов.
  2. Создайте Новый сайт.
  3. В поле Протокол выберите SFTP — SSH File Transfer Protocol.
  4. Введите хост (IP или домен) и порт (по умолчанию 22).
  5. Укажите имя пользователя и пароль или выберите авторизацию по ключу (в настройках FileZilla можно указать приватный ключ в формате OpenSSH).
  6. Нажмите Подключиться.

Советы:

  • Для ключевой аутентификации заранее конвертируйте ключ в формат, который понимает FileZilla (обычно OpenSSH PEM). Современные версии FileZilla поддерживают OpenSSH-ключи.

Загрузка: FileZilla (Free)

Настройка ключевой аутентификации шаг за шагом

  1. Генерация ключа (рекомендуется ed25519 или RSA 4096):
ssh-keygen -t ed25519 -C "email@example.com"
  1. Скопируйте публичную часть на сервер (если есть ssh-copy-id в вашей среде):
ssh-copy-id -i ~/.ssh/id_ed25519.pub username@server

Если ssh-copy-id недоступна, скопируйте вручную:

# на клиенте
type C:\Users\\.ssh\id_ed25519.pub
# скопировать вывод и на сервере добавить в ~/.ssh/authorized_keys
  1. Проверьте права на сервере:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
  1. При использовании PuTTY: конвертируйте закрытый ключ в .ppk через PuTTYgen и укажите его в PuTTY → Connection → SSH → Auth.

SSH-туннелирование и переадресация портов

Локальное переадресация (пример):

# пробрасывает локальный порт 8080 на удалённый host:80
ssh -L 8080:localhost:80 username@remote

Удалённое переадресация:

# делает удалённый порт 2222 на сервере доступным как локальный 22 на вашей машине
ssh -R 2222:localhost:22 username@remote

PuTTY: Connection → SSH → Tunnels — настройте Source port и Destination, укажите Local/Remote, затем Add.

Использование туннелей полезно для безопасного доступа к сервисам внутри защищённой сети и для разработки.

Безопасность и харднинг SSH соединений

Рекомендации по усилению безопасности:

  • Отключите аутентификацию по паролю, оставьте только ключи: в /etc/ssh/sshd_config установите PasswordAuthentication no.
  • Запретите вход под root по паролю: PermitRootLogin prohibit-password или no.
  • Используйте современные алгоритмы: предпочтительны ed25519 или RSA 4096.
  • Поменяйте стандартный порт 22 на нестандартный, чтобы снизить количество автоматизированных попыток.
  • Включите брандмауэр и ограничьте доступ по IP, где возможно.
  • Настройте fail2ban или аналог для блокировки повторяющихся неудачных попыток входа.

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

Устранение неполадок

Частые ошибки и как их решать:

  • Permission denied: проверьте корректность публичного ключа в ~/.ssh/authorized_keys и права доступа на ~/.ssh и authorized_keys.
  • Host key verification failed: удалённый хост изменил ключ — проверьте подлинность, затем удалите запись о хосте из ~/.ssh/known_hosts и подключитесь заново.
  • Connection refused: убедитесь, что SSH-сервер запущен и порт открыт, проверьте брандмауэр.
  • Timeout: проверьте сетевой маршрут и доступность хоста.

Диагностика через PowerShell/OpenSSH:

ssh -vvv username@remote

Флаг -vvv даёт подробный вывод для поиска причины сбоя.

Когда какой клиент выбирать

  • PuTTY — удобен для пользователей Windows, которые предпочитают GUI и сохранять сессии.
  • OpenSSH в PowerShell — лучший выбор для автоматизации, скриптов и тех, кто привык к Linux-подходу.
  • Cygwin — когда нужна большая коллекция UNIX-утилит.
  • Secure Shell (Chrome) — быстрые подключения без установки ПО.
  • FileZilla — если основная задача — передача файлов через SFTP.

Decision tree для выбора клиента

flowchart TD
  A[Нужен SSH в Windows?] --> B{Интерактивный терминал или передача файлов?}
  B --> |Терминал| C{GUI или CLI?}
  C --> |GUI| D[PuTTY]
  C --> |CLI| E[PowerShell OpenSSH]
  B --> |Файлы| F[FileZilla SFTP]
  A --> G[Просто быстро из браузера]
  G --> H[Secure Shell 'Chrome']
  E --> I{Нужна среда Unix}
  I --> |Да| J[Cygwin]
  I --> |Нет| E

SOP: быстрое подключение и деплой

Шаги для безопасного подключения и отправки изменений на сервер:

  1. Сгенерируйте ключ локально (ed25519).
  2. Установите публичный ключ на сервер и проверьте права.
  3. Подключитесь через PowerShell: ssh username@server.
  4. Проверьте рабочую директорию, сделайте pull или загрузку файлов через SFTP.
  5. Для развертывания используйте rsync по SSH или SFTP-клиент.
  6. После успешного теста отключите парольную аутентификацию.

Критерии приёмки

  • Установлено защищённое соединение ssh без пароля.
  • Доступ к нужной базе данных/файлам через туннель при необходимости.
  • Передача файлов через SFTP завершается без ошибок и с контрольной суммой.

Ролевые чеклисты

Системный администратор:

  • Настроить OpenSSH на сервере и разрешить доступ по ключам.
  • Настроить fail2ban и брандмауэр.
  • Документировать запасной доступ (консоль провайдера).

Разработчик:

  • Сгенерировать ключ и добавить публичный ключ в authorised_keys.
  • Настроить ~/.ssh/config для удобных алиасов.
  • Настроить локальное туннелирование для тестирования сервисов.

Контент-менеджер:

  • Использовать FileZilla для SFTP.
  • Проверить права файлов на сервере после загрузки.
  • Вести журнал изменений и версии контента.

Критические замечания и когда SSH не подойдёт

  • SSH обеспечивает доступ к командной строке, но не заменяет полноценный графический удалённый рабочий стол (RDP, VNC).
  • Для передачи больших наборов данных возможны более эффективные специализированные протоколы.
  • При облачных провайдерах часто требуется использование их консольных сервисов вместе с SSH.

Мини-словарь

  • SSH: Secure Shell, протокол удалённого управления и передачи данных.
  • SFTP: SSH File Transfer Protocol, безопасная передача файлов поверх SSH.
  • PuTTY: графический SSH-клиент для Windows.
  • OpenSSH: набор SSH-утилит, стандарт в UNIX-подобных системах.
  • .ppk: приватный ключ формата PuTTY.

Important: прежде чем отключать пароли на сервере, убедитесь, что у вас в наличии рабочие закрытые ключи и доступ по ним проверен.

Короткое резюме

SSH в Windows — это набор инструментов, от нативного OpenSSH в PowerShell до PuTTY и FileZilla. Выбор зависит от задач: терминал и автоматизация — OpenSSH, быстрые графические сессии — PuTTY, передача файлов — FileZilla. Настройка ключей и базовые меры безопасности критичны для защиты доступа.

Примечание

  • Всегда резервируйте приватные ключи и контролируйте права доступа. - Тестируйте изменения конфигурации на отдельном сервере или консоли восстановления.
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

RDP: полный гид по настройке и безопасности
Инфраструктура

RDP: полный гид по настройке и безопасности

Android как клавиатура и трекпад для Windows
Гайды

Android как клавиатура и трекпад для Windows

Советы и приёмы для работы с PDF
Документы

Советы и приёмы для работы с PDF

Calibration в Lightroom Classic: как и когда использовать
Фото

Calibration в Lightroom Classic: как и когда использовать

Отключить Siri Suggestions на iPhone
iOS

Отключить Siri Suggestions на iPhone

Рисование таблиц в Microsoft Word — руководство
Office

Рисование таблиц в Microsoft Word — руководство