Как настроить SSH-клиент в Windows: встроенный OpenSSH и PuTTY

настроить ssh клиент windows openssh keytrust24.store

Windows 10 и 11 включают встроенный SSH-клиент OpenSSH, который дает возможность подключаться к серверам Linux, маршрутизаторам и другим устройствам прямо из командной строки. Больше не нужно устанавливать PuTTY для базовых задач. Разберем установку, настройку ключей, конфигурационный файл и типичные сценарии использования.

Главное:

  • Windows 10/11 включает OpenSSH-клиент — установка дополнительного ПО не требуется
  • Генерация SSH-ключей через ssh-keygen создает пару RSA/Ed25519 за секунды
  • Конфигурационный файл ~/.ssh/config упрощает подключение к частым хостам
  • Windows Terminal поддерживает несколько SSH-сессий во вкладках

Проверка и установка OpenSSH-клиента

В Windows 10 (1809+) и Windows 11 OpenSSH-клиент предустановлен. Проверьте его наличие, открыв командную строку или PowerShell:

ssh -V

Ответ вида «OpenSSH_for_Windows_9.5p1, LibreSSL 3.8.2» подтверждает установку. Если команда не найдена, установите вручную.

Установка через параметры: «Параметры» — «Приложения» — «Дополнительные компоненты» — «Добавить компонент». Найдите «Клиент OpenSSH» и установите.

Установка через PowerShell (от администратора):

Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0

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

Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH*'

Статус «Installed» подтверждает, что компонент активен. OpenSSH-клиент устанавливается в C:WindowsSystem32OpenSSH. Исполняемые файлы: ssh.exe, ssh-keygen.exe, scp.exe, sftp.exe, ssh-agent.exe.

Подключение к серверу по SSH

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

ssh username@hostname

Примеры:

ssh [email protected]
ssh [email protected]
ssh -p 2222 [email protected]

Параметр -p указывает нестандартный порт (по умолчанию 22). При первом подключении SSH покажет отпечаток ключа сервера и спросит подтверждение. Введите yes для добавления сервера в список доверенных (файл known_hosts).

Полезные параметры:

  • -v — подробный вывод (для отладки проблем подключения)
  • -i path/to/key — использовать конкретный ключ
  • -L 8080:localhost:80 — проброс локального порта (туннелирование)
  • -D 1080 — SOCKS-прокси через SSH
  • -N — не запускать командную оболочку (только туннель)

Выполнение команды на удаленном сервере без входа в оболочку:

ssh user@server "ls -la /var/www"

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

SSH-ключи безопаснее паролей и удобнее для автоматизации. Генерация пары ключей:

ssh-keygen -t ed25519 -C "[email protected]"

Ed25519 — современный алгоритм, быстрее и безопаснее RSA. Если сервер не поддерживает Ed25519, используйте RSA:

ssh-keygen -t rsa -b 4096

При генерации будет запрошено:

  • Расположение файла (по умолчанию C:UsersИмя.sshid_ed25519)
  • Пароль для ключа (passphrase) — рекомендуется для безопасности

Результат: два файла — id_ed25519 (приватный ключ, никому не передавать) и id_ed25519.pub (публичный ключ, для серверов).

Копирование публичного ключа на сервер:

type $env:USERPROFILE.sshid_ed25519.pub | ssh user@server "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

После этого подключение будет происходить без пароля. Если задан passphrase для ключа, используйте ssh-agent для кеширования.

Настройка SSH-агента

SSH-агент хранит расшифрованные приватные ключи в памяти, избавляя от повторного ввода passphrase.

Запуск службы ssh-agent (от администратора):

Set-Service ssh-agent -StartupType Automatic
Start-Service ssh-agent

Добавление ключа в агент:

ssh-add $env:USERPROFILE.sshid_ed25519

Введите passphrase один раз. До перезагрузки компьютера ключ будет использоваться автоматически.

Просмотр добавленных ключей:

ssh-add -l

Удаление всех ключей из агента:

ssh-add -D

Для постоянного хранения ключей в агенте (без повторного добавления после перезагрузки) добавьте в конфигурационный файл SSH:

Host *
    AddKeysToAgent yes

Служба ssh-agent запускается автоматически при входе в систему, если настроен автозапуск (StartupType Automatic).

Конфигурационный файл SSH

Файл config в папке .ssh упрощает подключение к часто используемым серверам. Создайте файл C:UsersИмя.sshconfig (без расширения).

Пример конфигурации:

Host myserver
    HostName 192.168.1.100
    User admin
    Port 22
    IdentityFile ~/.ssh/id_ed25519

Host production
    HostName prod.example.com
    User deploy
    Port 2222
    IdentityFile ~/.ssh/id_rsa_prod

Host *
    ServerAliveInterval 60
    ServerAliveCountMax 3
    AddKeysToAgent yes

После настройки подключение упрощается:

ssh myserver
ssh production

Секция Host * задает параметры по умолчанию для всех подключений. ServerAliveInterval отправляет keepalive-пакеты каждые 60 секунд для предотвращения разрыва соединения.

Для работы с Git через SSH добавьте:

Host github.com
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_ed25519

Подробнее о командной строке Windows в статье об основах PowerShell.

Передача файлов через SCP и SFTP

OpenSSH включает SCP и SFTP для безопасной передачи файлов.

Копирование файла на сервер:

scp file.txt user@server:/home/user/
scp -r folder/ user@server:/home/user/

Скачивание файла с сервера:

scp user@server:/var/log/app.log C:UsersИмяDownloads
scp -r user@server:/home/user/project/ D:Projects

Параметр -r копирует папки рекурсивно. Параметр -P указывает порт (заглавная P для scp, в отличие от -p для ssh).

SFTP для интерактивной работы:

sftp user@server

Команды SFTP: ls (список файлов на сервере), lls (список локальных файлов), get (скачать), put (загрузить), cd (сменить директорию на сервере), lcd (сменить локальную директорию).

Для графического SFTP-клиента на Windows рекомендуется WinSCP (бесплатный) или FileZilla (поддерживает SFTP). Они используют те же SSH-ключи и конфигурацию.

SSH через Windows Terminal

Windows Terminal поддерживает SSH-профили во вкладках. Это удобнее, чем запускать отдельные окна cmd для каждого сервера.

Добавление SSH-профиля: откройте Windows Terminal, нажмите стрелку вниз — «Параметры» — «Добавить новый профиль». В поле «Командная строка» введите:

ssh myserver

Укажите имя профиля (например, «Production Server»), выберите значок. Нажмите «Сохранить». Теперь сервер доступен во вкладках Terminal.

Горячие клавиши Windows Terminal:

  • Ctrl+Shift+T — новая вкладка
  • Ctrl+Shift+D — дублирование текущей вкладки
  • Alt+Shift+D — разделение панели
  • Ctrl+Tab — переключение вкладок

Windows Terminal также поддерживает кастомизацию: цветовые схемы, прозрачность, шрифты. Файл настроек settings.json помогает тонко настроить каждый профиль.

Для администрирования нескольких серверов Terminal с SSH-профилями заменяет PuTTY, предлагая современный интерфейс с вкладками. Актуальные ключи Windows в нашем каталоге Windows.

Полезные ссылки и материалы

Для решения задач, описанных в этой статье, могут пригодиться:

Официальная документация: Microsoft Learn: устранение неполадок.

Диагностика сетевых проблем

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

Базовые проверки

# Проверка сетевого подключения
ipconfig /all

# Тест связи с DNS-сервером
ping 8.8.8.8

# Тест DNS-разрешения
nslookup google.com

# Трассировка маршрута
tracert google.com

Если ping по IP работает, а nslookup нет — проблема в DNS. Если оба не работают — проблема на уровне сетевого подключения.

Сброс сетевых настроек

Когда диагностика не помогает, полный сброс сетевого стека часто решает проблему:

# Полный сброс сети (от имени администратора)
netsh winsock reset
netsh int ip reset
ipconfig /flushdns
ipconfig /release
ipconfig /renew

После сброса перезагрузите компьютер. Все VPN-подключения и прокси-настройки придется создать заново. Подробнее о настройке DNS читайте в руководстве по DNS.

Безопасность сетевых подключений

Настройка сети без учета безопасности — это открытая дверь для злоумышленников. Минимальные меры защиты обязательны.

Брандмауэр Windows

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

# Статус брандмауэра для всех профилей
netsh advfirewall show allprofiles state

Шифрование трафика

  • Используйте WPA3 или WPA2-Personal для домашней Wi-Fi сети
  • При работе в публичных сетях подключайте VPN
  • Для удаленного доступа используйте SSH или RDP с NLA вместо незащищенных протоколов

Мониторинг подключений

# Все активные сетевые подключения
netstat -an | findstr ESTABLISHED

# С именами процессов (от имени администратора)
netstat -ab

Если видите подключения к незнакомым IP-адресам, проверьте их через whois. Подозрительные соединения могут указывать на вредоносное ПО.

Часто задаваемые вопросы

Нужен ли PuTTY в Windows 11?

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

Как подключиться по SSH с паролем?

Выполните ssh user@server. При запросе пароля введите его. Пароль не отображается при вводе. Для безопасности рекомендуется перейти на ключи.

Где хранятся SSH-ключи в Windows?

В папке C:UsersИмя.ssh. Приватный ключ: id_ed25519 (не передавайте никому). Публичный: id_ed25519.pub (копируйте на серверы).

Как пробросить порт через SSH?

Используйте параметр -L: ssh -L 8080:localhost:80 user@server. Локальный порт 8080 будет перенаправлять трафик на порт 80 сервера.

Частые вопросы

Нужен ли PuTTY в Windows 11?

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

Как подключиться по SSH с паролем?

Выполните ssh user@server. При запросе пароля введите его. Пароль не отображается при вводе. Для безопасности рекомендуется перейти на ключи.

Где хранятся SSH-ключи в Windows?

В папке C:UsersИмя.ssh. Приватный ключ: id_ed25519 (не передавайте никому). Публичный: id_ed25519.pub (копируйте на серверы).

Как пробросить порт через SSH?

Используйте параметр -L: ssh -L 8080:localhost:80 user@server. Локальный порт 8080 будет перенаправлять трафик на порт 80 сервера.