Почти на всем протяжении жизни Windows-систем главной утилитой для работы с SSH (secure shell или безопасная оболочка) была программа PuTTY. В октября 2018 года разработчики Windows выпустили сборку 1809 (Редстоун 5 или просто RS5) с компонентом OpenSSH и сторонние утилиты стали не нужны.
SSH-клиент в Windows 10 доступен в виде компонента «Клиент OpenSSH». Проверить его наличие можно в настройках системы — «Параметры» > «Приложения» > «Дополнительные компоненты» > список ниже. Если «Клиент OpenSSH» отсутствует в списке, то добавьте его.
Настройка сервиса SSH-AGENT
SSH-AGENT — это менеджер ssh-ключей. Для его активации достаточно ввести в PowerShell его наименование ssh-agent.
Есть возможность настроить автозапуск при входе в систему:
Get-Service -Name ssh-agent | Set-Service -StartupType Automatic
Или же запуск вручную по необходимости:
Get-Service -Name ssh-agent | Set-Service -StartupType Manual
Определить текущее состояние настройки запуска:
Get-Service ssh-agent | Select StartType
Проверка текущего состояния:
Get-Service ssh-agent
Генерация ключей
Ключи создаются одной командой:
ssh-keygen
Пример создания ключа с указанным алгоритмом и своим комментарием:
ssh-keygen -t ed25519 -C "MyGitHubProfile"
Утилита ssh-keygen спросит у вас где сохранить ключи и нужно ли задавать пароль для доступа к ним. Если вы используете ключи для тренировки, то пароль будет отнимать время просто так и задавать его не стоит, но если вы занимаетесь коммерческой разработкой, то пароли крайне желательны. Так надежнее.
После успешной генерации ключей добавьте приватный ключ в ssh-agent:
ssh-add ~\.ssh\id_ed25519
Просмотреть список ключей в SSH-AGENT:
ssh-add -l ssh-add -L
Удалить все ключи из SSH-AGENT:
ssh-add -D
Если путь до приватного ключа введен правильно, то появится сообщение «Identity added». Ваша система теперь полностью готова для работы с удаленными серверами по SSH.
Что удаленный сервер мог вас опознать, необходимо отправить ему публичный ключ. Ваш публичный ключ должен быть сохранен в файле authorized_keys на удаленном сервере (по умолчанию он располагается в директории пользователя — ~/.ssh/authorized_keys). Ваш публичный ключ обычно расположен около приватного, вот тут: «~\.ssh\id_ed25519.pub». Только не перепутайте, приватный ключ остается у вас, а публичный вы отдаете в сторонние сервисы.
Символ ~ означает директорию текущего пользователя. При желании вы можете указывать полные пути, т.е. вместо «~\.ssh\id_ed25519.pub» вполне подойдет «C:\Users\username\.ssh\id_ed25519.pub».
Что еще стоит знать о SSH?
Схема работы
Если вы ранее не имели дело с SSH, то все это работает примерно так. Вы генерируете два ключа, первый — секретный (он остается только у вас, например, id_ed25519), второй — открытый (например, id_ed25519.pub), его можно передавать кому угодно. Чтобы подключаться по SSH к удаленным серверам, необходимо свой публичный ключ записать на SSH сервер в файл authorized_keys, по нему сервер опознает вас по ключу при попытке соединения. Публичный и приватный (секретный) ключи связаны между собой. Подключиться к публичному ключу лежащему на сервере сможет только владелец связанного с ним приватного (секретного) ключа.
Доступные алгоритмы шифрования
Для создания ключей можно использовать различные алгоритмы шифрования. Вкратце рассмотрим самые популярные варианты и примеры их использования.
dsa — устарел и использовать его не стоит.
ecdsa — надежный алгоритм с возможностью указывать размер ключа в битах (256, 384 и 521), неплохой выбор. Пример:
ssh-keygen -t ecdsa -b 256 ssh-keygen -t ecdsa -b 384 ssh-keygen -t ecdsa -b 521
rsa — один из самых популярных алгоритмов шифрования, хороший выбор. Желательно указывать длинные ключи шифрования от 2048 бит.
ssh-keygen -t rsa -b 256 ssh-keygen -t rsa -b 512 ssh-keygen -t rsa -b 1024 ssh-keygen -t rsa -b 2048 ssh-keygen -t rsa -b 4096
ed25519 — новый, надежный и быстрый алгоритм шифрования. Если ваша система его поддерживает, то это лучший выбор.
ssh-keygen -t ed25519
Справка
Полезные ссылки
- Работа с SSH в Windows 10 и Linux. Генерация ключей — YouTube;
- Установка OpenSSH;
- Управление ключами OpenSSH — docs.microsoft.com/ru-ru/windows-server/administration/openssh/openssh_keymanagement;
- Ошибка: «Запуск ssh-агента на Windows 10 завершается неудачно…»;
- Настройка SSH аутентификации по ключам в Windows 10 / 2019;
- Пример тестового сервера (Docker);
- Generating a new SSH key and adding it to the ssh-agent.
Добавить комментарий
Для отправки комментария вам необходимо авторизоваться.