Найти в Дзене
Заметки в сети

Windows 10, аналог ssh-copy-id для OpenSSH

OpenSSH — это версия средств Secure Shell (SSH), используемых администраторами Linux и другими пользователями, отличными от Windows, для кроссплатформенного управления удаленными системами. Начиная с сборки Windows 10 1809 и Windows Server 2019, OpenSSH доступен в качестве функции по запросу. Информация: В текущей реализации OpenSSH для Windows 10 отсутствует команда ssh-copy-id. Однако её функциональность можно воспроизвести с помощью однострочной команды PowerShell. Чтобы использовать аутентификацию на основе ключей, необходимо заранее создать для клиента одну или несколько пар открытого и закрытого ключей. Можно использовать ssh-keygen.exe для создания файлов ключей. Можно указать следующие алгоритмы создания ключей: Примечание: Если у вас уже есть SSH-ключ, перейдите к следующему разделу. ssh-keygen Следуйте указаниям мастера. Ключи по умолчанию сохраняются в %USERPROFILE%/.ssh/Публичный ключ: id_rsa.pub
Приватный ключ: id_rsa
Пример выполнения: PS C:\Users\barsbond> ssh-keygen
G
Оглавление

OpenSSH — это версия средств Secure Shell (SSH), используемых администраторами Linux и другими пользователями, отличными от Windows, для кроссплатформенного управления удаленными системами. Начиная с сборки Windows 10 1809 и Windows Server 2019, OpenSSH доступен в качестве функции по запросу.

Информация: В текущей реализации OpenSSH для Windows 10 отсутствует команда ssh-copy-id. Однако её функциональность можно воспроизвести с помощью однострочной команды PowerShell.

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

Чтобы использовать аутентификацию на основе ключей, необходимо заранее создать для клиента одну или несколько пар открытого и закрытого ключей. Можно использовать ssh-keygen.exe для создания файлов ключей. Можно указать следующие алгоритмы создания ключей:

  • Алгоритм цифровой подписи (DSA)
  • Ривст-Шамир-Адлеман (RSA)
  • Алгоритм цифровой подписи на базе эллиптической кривой (ECDSA)
  • Ed25519

Примечание: Если у вас уже есть SSH-ключ, перейдите к следующему разделу.

  1. Откройте PowerShell (не командную строку!)
  2. Выполните команду:
ssh-keygen

Следуйте указаниям мастера. Ключи по умолчанию сохраняются в

%USERPROFILE%/.ssh/Публичный ключ: id_rsa.pub
Приватный ключ: id_rsa

Пример выполнения:

PS C:\Users\barsbond> ssh-keygen
Generating public/private rsa key pair...
Your public key has been saved in C:\Users\barsbond/.ssh/id_rsa.pub.

Копирование ключа на удаленный Linux-сервер

Используйте команду:

type $env:USERPROFILE\.ssh\id_rsa.pub | ssh {user}@{IP-АДРЕС-ИЛИ-ИМЯ} "cat >> .ssh/authorized_keys"

Пример:

PS C:\Users\barsbond> type $env:USERPROFILE\.ssh\id_rsa.pub | ssh root@192.168.30.31 "cat >> .ssh/authorized_keys"

При первом подключении потребуется подтвердить добавление хоста и ввести пароль.

Проверка подключения

Убедитесь, что подключение работает без пароля:

ssh root@192.168.30.31

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

Ссылки