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.
Полезные ссылки и материалы
Для решения задач, описанных в этой статье, могут пригодиться:
- Руководство по настройке Windows 10
- Руководство по настройке настройки DNS
- Руководство по настройке Windows 11
Официальная документация: 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 сервера.



