SSH-профиль в Windows Terminal через WSL
Быстрые ссылки
- Предпосылки
- Настройка профиля
- Проверка и отладка

Windows Terminal — современное приложение терминала для Windows. Одна из удобных функций — возможность создавать индивидуальные профили, в том числе профиль, который сразу запускает SSH через WSL (bash). Это позволяет открывать терминал и автоматически подключаться к серверу без ручного ввода хоста.
Предпосылки
- Установлен новый Windows Terminal из Microsoft Store.
- Установлен WSL (Windows Subsystem for Linux). По умолчанию вызов bash.exe запускает дистрибутив по умолчанию.
- На хосте должен быть доступен SSH и настроен пользователь (ключи/пароль).
Важно: профиль обычно используется для отдельных сред (например, Ubuntu WSL, PowerShell, CMD). Мы используем возможность “запустить профиль и выполнить команду”, чтобы вызвать ssh.
sshЭто простая конфигурация, но она очень удобна.
Настройка профиля
- Откройте Windows Terminal, нажмите на стрелку выпадающего меню и выберите “Settings” (Параметры).

- Настройки представлены в виде JSON-файла. Найдите массив “profiles” -> “list” и добавьте туда новый объект профиля. Ниже — пример готового профиля (валидный JSON). Отредактируйте поля name, commandline и guid под свои нужды. Путь к иконке можно указать на локальную картинку.
{
"name": "SERVER NAME",
"commandline": "bash.exe -c \"ssh ubuntu@example.com\"",
"guid": "{1d43c510-93e8-bbbb-a18b-e432641e0942}",
"icon": "C:\\Users\\Anthony\\Pictures\\example.png",
"closeOnExit": true,
"colorScheme": "Campbell",
"cursorColor": "#FFFFFF",
"cursorShape": "bar",
"fontFace": "RobotoMono Nerd Font",
"fontSize": 10,
"historySize": 9001,
"snapOnInput": true,
"startingDirectory": ""
}Пояснения к полям:
- name — отображаемое имя профиля в выпадающем списке. Замените на понятное (например, prod-web-1).
- commandline — команда, которая будет выполнена при запуске профиля. Внутри JSON кавычки для ssh-команды должны быть экранированы.
- guid — уникальный идентификатор профиля. Можно сгенерировать новый GUID или отредактировать существующий.
- icon — необязательно, путь к изображению, которое будет отображаться в списке профилей.
- Остальные параметры управляют внешним видом и поведением терминала.
Сохраните файл (Ctrl+S). После сохранения профиль появится в выпадающем списке профилей.

Клик по профилю откроет bash и выполнит ssh к указанному серверу автоматически.
Частые вопросы и отладка
Не запускается SSH — что проверить
- Проверьте, что команда ssh работает вручную в WSL: откройте bash.exe и выполните ssh ubuntu@example.com.
- Убедитесь, что путь в commandline экранирован правильно (см. пример выше).
- Проверьте значение поля “guid” — оно должно быть уникальным.
- Если используете SSH-ключи, убедитесь, что агент SSH запущен и ключи доступны в среде WSL.
Важно: если в команде присутствуют дополнительные параметры (порт, опции), экранируйте их внутри string: например, “bash.exe -c \”ssh -p 2222 user@host\””.
Ошибки кодировки или шрифтов
Если символы отображаются некорректно, проверьте fontFace и fontSize в профиле. Некоторые моноширинные шрифты могут не содержать нужных символов; выберите совместимый шрифт.
Когда это не подходит
- Если вы хотите полноценную сессию PowerShell или CMD на удалённом хосте — лучше настроить удалённый доступ через RDP или отдельные профили PowerShell с удалённым WinRM.
- Для динамического выбора хоста (например, список серверов) этот метод требует создания многих статических профилей; в таких сценариях удобнее использовать скрипт-меню внутри WSL.
Альтернативные подходы
- Использование ярлыков Windows с командой “wsl ssh user@host” для каждой машины.
- Скрипт в WSL, который принимает параметр и показывает интерактивное меню выбора сервера.
- Использование PuTTY/Kitty или встроенного OpenSSH для Windows, если не хочется запускать WSL.
Шаблон: универсальный профиль с портом и аргументами
{
"name": "SSH: my-server",
"commandline": "bash.exe -c \"ssh -i ~/.ssh/id_rsa -p 2200 user@my-server.example.com\"",
"guid": "{2a5f8e10-0000-aaaa-bbbb-ccccdddd1111}",
"icon": "C:\\Users\\Public\\Pictures\\server-icon.png",
"closeOnExit": false,
"colorScheme": "One Half Dark",
"cursorShape": "filledBox",
"fontFace": "Consolas",
"fontSize": 12
}Чек-лист перед сохранением
- Изменён name на понятное имя.
- commandline корректно экранирован.
- guid уникален.
- Если используется иконка — путь существует.
- SSH-ключи/агент доступны в WSL.
Критерии приёмки
- Профиль отображается в выпадающем меню Windows Terminal.
- Клик по профилю открывает окно терминала и автоматически выполняет SSH-подключение.
- Подключение проходит без ошибок (аутентификация успешна).
- Если closeOnExit=false — окно остаётся открытым после завершения сессии.
Безопасность и рекомендации
- Не храните закрытые ключи в общедоступных папках Windows без шифрования.
- Отключайте автоматический вход по паролю; предпочтительнее ключи с passphrase и агентом.
- Для нескольких серверов используйте разные ключи и записи в ~/.ssh/config для удобства.
Короткая методология настройки
- Проверьте работу ssh в WSL вручную.
- Скопируйте и адаптируйте пример JSON-профиля.
- Экранируйте кавычки и сохраните настройки.
- Протестируйте профиль и при необходимости откорректируйте.
Глоссарий (1 строка)
- WSL — подсистема Windows для запуска Linux-приложений.
- GUID — уникальный идентификатор профиля.
- commandline — команда, выполняемая при запуске профиля.
Итог
Создание SSH-профиля в Windows Terminal через WSL позволяет сэкономить время и стандартизировать доступ к серверам. Используйте шаблоны, храните ключи безопасно и проверяйте экранирование команд в JSON.
