Создать окна ключей ssh

Обновлено: 21.11.2024

Ключи SSH можно использовать для установки безопасного соединения с Bitbucket Data Center and Server для:

  • когда вы выполняете операции Git с локального компьютера
  • когда другой системе или процессу требуется доступ к репозиториям в Bitbucket (например, вашему серверу сборки)

Ключ SSH необходимо добавить в Bitbucket, и ваш администратор Bitbucket должен включить доступ SSH к репозиториям Git, прежде чем вы сможете использовать этот ключ.

Bitbucket поддерживает типы ключей DSA, RSA2 и Ed25519. RSA1 не поддерживается

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

На этой странице:

Похожие страницы:

Создание ключа SSH в Windows

1. Проверить существующие ключи SSH

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

Откройте командную строку и выполните:

Если вы видите сообщение "Нет такого файла или каталога", значит ключей нет: перейдите к шагу 3.

Проверьте, есть ли у вас ключ:

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

2. Резервное копирование старых ключей SSH

Если у вас есть существующие ключи SSH, но вы не хотите использовать их при подключении к Bitbucket, вам следует создать их резервную копию.

В командной строке на локальном компьютере запустите:

3. Создайте новый SSH-ключ

Если у вас нет существующего ключа SSH, который вы хотите использовать, создайте его следующим образом:

В командной строке запустите:

Связывание ключа с вашим адресом электронной почты поможет вам идентифицировать ключ позже.

Обратите внимание, что команда ssh-keygen доступна только в том случае, если вы уже установили Git (с Git Bash).
Вы увидите примерно такой ответ:

Введите и повторите ввод парольной фразы при появлении запроса. Все взаимодействие будет выглядеть примерно так:

Создание ключа SSH в Linux и macOS

1. Проверить существующие ключи SSH

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

Откройте терминал и выполните следующее:

    Если вы видите сообщение «Нет такого файла или каталога, значит, существующих ключей нет: перейдите к шагу 3.

Проверьте, есть ли у вас ключ:

2. Резервное копирование старых ключей SSH

Если у вас есть существующие ключи SSH, но вы не хотите использовать их при подключении к Bitbucket, вам следует создать их резервную копию.

Сделайте это в терминале на локальном компьютере, запустив:

3. Создать новый ключ

Если у вас нет существующего ключа SSH, который вы хотите использовать, создайте его следующим образом:

Откройте терминал на локальном компьютере и введите следующее:

Связывание ключа с вашим адресом электронной почты поможет вам идентифицировать ключ позже.

Вы увидите примерно такой ответ:

Введите парольную фразу, а затем повторите ее при появлении запроса.
Все взаимодействие будет выглядеть примерно так:

SSH означает Secure Shell и представляет собой метод, используемый для установления безопасного соединения между двумя компьютерами.

SSH работает путем аутентификации на основе пары ключей, при этом закрытый ключ находится на удаленном сервере, а соответствующий открытый ключ — на локальном компьютере. Когда ключи совпадают, доступ предоставляется удаленному пользователю.

В этом руководстве показано, как сгенерировать пару ключей SSH в Windows 10 с помощью OpenSSH или PuTTY.

  • Система под управлением Windows 10
  • Учетная запись пользователя с правами администратора
  • Доступ к командной строке
  • Веб-браузер (необязательно для загрузки PuTTY)

Создайте ключ SSH в Windows 10 с помощью клиента OpenSSH

Шаг 1. Проверьте, установлен ли клиент OpenSSH

Сначала проверьте, установлен ли у вас клиент OpenSSH:

<р>1. Откройте панель "Настройки" и нажмите "Приложения".

<р>2. Под заголовком Приложения и функции нажмите Дополнительные функции.

<р>3. Прокрутите список вниз, чтобы увидеть, есть ли в нем клиент OpenSSH.

  • Если это не так, нажмите на значок "плюс" рядом с пунктом "Добавить функцию".
  • Прокрутите список, чтобы найти и выбрать клиент OpenSSH.
  • Наконец нажмите «Установить».

Шаг 2. Откройте командную строку

<р>1. Нажмите клавишу Windows.

<р>2. Введите cmd.

<р>3. В разделе Лучшее соответствие щелкните правой кнопкой мыши командную строку.

<р>4. Нажмите «Запуск от имени администратора».

<р>5. При появлении запроса нажмите «Да» во всплывающем окне Разрешить этому приложению вносить изменения на вашем устройстве?.

Шаг 3. Используйте OpenSSH для создания пары ключей SSH

<р>1. В командной строке введите следующее:

<р>2. По умолчанию система сохранит ключи в папку C:\Users\ваше_имя_пользователя/.ssh/id_rsa. Вы можете использовать имя по умолчанию или выбрать более описательные имена. Это может помочь различать ключи, если вы используете несколько пар ключей. Чтобы придерживаться варианта по умолчанию, нажмите Enter.

Примечание. Если файл с таким именем уже существует, вас спросят, хотите ли вы перезаписать файл.

<р>3. Вам будет предложено ввести парольную фразу. Нажмите Enter, чтобы пропустить этот шаг.

<р>4. Система сгенерирует пару ключей и отобразит отпечаток ключа и случайное изображение.

<р>5. Откройте файловый браузер.

<р>6. Перейдите к C:\Users\ваше_имя_пользователя/.ssh.

<р>7. Вы должны увидеть два файла. Идентификация сохраняется в файле id_rsa, а открытый ключ помечен как id_rsa.pub. Это ваша пара ключей SSH.

Примечание. Обычно открытый ключ имеет расширение .pub. Вы можете использовать Блокнот, чтобы просмотреть содержимое как закрытого, так и открытого ключа.

Создание ключей SSH с помощью PuTTY

До того, как OpenSSH был включен в Windows, инструмент PuTTY был золотым стандартом для создания ключей SSH.

Шаг 1. Установите PuTTY

<р>1. Перейдите на страницу разработчика и загрузите установщик PuTTY:

<р>2. Дважды щелкните загруженный файл и следуйте указаниям мастера установки, чтобы завершить установку.

  • В начальном диалоговом окне мастера установки нажмите "Далее".
  • Выберите папку назначения. Используйте конфигурацию установки по умолчанию, если у вас нет особой необходимости ее изменить. Нажмите «Далее», чтобы перейти к следующему экрану.

  • Выберите функции продукта PuTTY для установки. Придерживайтесь значений по умолчанию, если у вас нет особых потребностей. Нажмите «Далее», чтобы перейти к следующему экрану.

  • После завершения процесса нажмите "Готово", чтобы выйти из мастера установки.

Шаг 2. Запустите генератор ключей PuTTY SSH

<р>1. Нажмите клавишу Windows.

<р>2. Введите puttygen.

<р>3. В разделе Лучшее соответствие щелкните правой кнопкой мыши PuTTYgen.

<р>4. Нажмите Запуск от имени администратора.

<р>5. При появлении запроса нажмите Да во всплывающем окне Разрешить этому приложению вносить изменения на вашем устройстве?.

Шаг 3. Используйте PuTTY для создания пары ключей SSH

В ходе описанного ниже процесса будут созданы ключи RSA — классический и широко используемый тип алгоритма шифрования. Инструмент генерации ключей PuTTY предлагает несколько других алгоритмов: DSA, ECDSA, Ed25519 и SSH-1 (RSA).

Если вам требуется другой алгоритм шифрования, выберите нужный вариант в разделе Параметры перед созданием пары ключей.

<р>1. В окне Генератор ключей PuTTY нажмите "Создать".

<р>2. Переместите курсор в серое поле, чтобы заполнить зеленую полосу.

<р>3.Сохраните открытый ключ:

  • Нажмите кнопку "Сохранить открытый ключ".
  • Выберите место для сохранения ключа.
  • Дайте ключу имя (например, putty_key.pub)

<р>4. Сохраните закрытый ключ:

  • Откройте меню "Конверсии" вверху.
  • Нажмите Экспорт ключа OpenSSH.
  • Вас спросят, хотите ли вы сохранить ключ без кодовой фразы. Нажмите Да.
  • Выберите место для сохранения ключа (обычно это та же папка, что и открытый ключ).
  • Дайте ключу имя (например, putty_key).

Использование ключей SSH

Чтобы использовать ключи SSH, скопируйте открытый ключ SSH в систему, к которой вы хотите подключиться. Используйте свой закрытый SSH-ключ в своей системе. Ваш закрытый ключ совпадет с открытым ключом и предоставит доступ.

Для получения дополнительной информации и устранения неполадок см. наше руководство по входу в SSH без пароля с использованием ключей SSH.

В этой статье представлены два метода создания пар ключей SSH в системе Windows 10. Используйте ключи SSH для подключения к удаленной системе без использования паролей.

Большая часть аутентификации в средах Windows выполняется с помощью пары "имя пользователя-пароль", что хорошо подходит для систем, использующих общий домен. При работе между доменами, например между локальными и облачными системами, он становится уязвимым для вторжений методом грубой силы.

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

  • ssh-keygen для создания ключей безопасности
  • ssh-agent и ssh-add для безопасного хранения закрытых ключей
  • scp и sftp для безопасного копирования файлов открытого ключа при первоначальном использовании сервера

В этом документе представлен обзор того, как использовать эти инструменты в Windows, чтобы начать использовать аутентификацию на основе ключей с SSH. Если вы не знакомы с управлением ключами SSH, мы настоятельно рекомендуем ознакомиться с документом NIST IR 7966 под названием «Безопасность интерактивного и автоматизированного управления доступом с использованием Secure Shell (SSH)».

О парах ключей

Пары ключей относятся к файлам открытого и закрытого ключей, которые используются определенными протоколами аутентификации.

Аутентификация с открытым ключом SSH использует асимметричные криптографические алгоритмы для создания двух файлов ключей — одного «частного» и другого «общедоступного». Файлы закрытых ключей являются эквивалентом пароля и должны оставаться защищенными при любых обстоятельствах. Если кто-то получит ваш закрытый ключ, он сможет войти под вашим именем на любой SSH-сервер, к которому у вас есть доступ. Открытый ключ — это то, что размещается на сервере SSH, и им можно делиться без ущерба для закрытого ключа.

При использовании аутентификации по ключу с сервером SSH сервер и клиент SSH сравнивают открытый ключ для имени пользователя, предоставленного с закрытым ключом. Если открытый ключ на стороне сервера не может быть сверен с закрытым ключом на стороне клиента, аутентификация завершается неудачно.

Многофакторная аутентификация может быть реализована с помощью пар ключей путем ввода парольной фразы при создании пары ключей (см. генерацию ключа пользователя ниже). Во время аутентификации у пользователя запрашивается парольная фраза, которая используется вместе с наличием закрытого ключа на клиенте SSH для аутентификации пользователя.

Генерация ключа хоста

К открытым ключам предъявляются особые требования ACL, которые в Windows приравниваются к разрешению доступа только администраторам и системным. При первом использовании sshd будет автоматически сгенерирована пара ключей для хоста.

Сначала необходимо установить сервер OpenSSH. См. раздел Начало работы с OpenSSH.

По умолчанию служба sshd запускается вручную. Чтобы запускать его каждый раз при перезагрузке сервера, выполните следующие команды из командной строки PowerShell с повышенными привилегиями на своем сервере:

Поскольку со службой sshd не связан ни один пользователь, ключи хоста хранятся в папке C:\ProgramData\ssh.

Генерация ключа пользователя

Чтобы использовать аутентификацию на основе ключей, сначала необходимо сгенерировать пары открытого и закрытого ключей для своего клиента. ssh-keygen.exe используется для создания файлов ключей, и могут быть указаны алгоритмы DSA, RSA, ECDSA или Ed25519. Если алгоритм не указан, используется RSA. Следует использовать надежный алгоритм и длину ключа, например Ed25519 в этом примере.

Чтобы сгенерировать файлы ключей с помощью алгоритма Ed25519, запустите в клиенте из командной строки PowerShell или cmd следующую команду:

Это должно отобразить следующее (где «имя пользователя» заменено вашим именем пользователя):

Вы можете нажать Enter, чтобы принять значение по умолчанию, или указать путь и/или имя файла, в котором вы хотите сгенерировать ключи. На этом этапе вам будет предложено использовать парольную фразу для шифрования ваших файлов закрытого ключа.Это может быть пустым, но не рекомендуется. Парольная фраза работает с файлом ключа для обеспечения двухфакторной аутентификации. В этом примере мы оставляем парольную фразу пустой.

Теперь у вас есть пара открытый/закрытый ключ Ed25519 в указанном месте. Файлы .pub — это открытые ключи, а файлы без расширения — закрытые ключи:

Помните, что файлы закрытых ключей являются эквивалентом пароля и должны быть защищены так же, как вы защищаете свой пароль. Чтобы помочь в этом, используйте ssh-agent для безопасного хранения закрытых ключей в контексте безопасности Windows, связанном с вашим входом в Windows. Для этого запустите службу ssh-agent от имени администратора и используйте ssh-add для сохранения закрытого ключа.

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

Настоятельно рекомендуется создать резервную копию закрытого ключа в безопасном месте, а затем удалить его из локальной системы, после добавления в ssh-agent. Закрытый ключ не может быть получен от агента, если используется надежный алгоритм, такой как Ed25519 в этом примере. Если вы потеряете доступ к закрытому ключу, вам придется создать новую пару ключей и обновить открытый ключ во всех системах, с которыми вы взаимодействуете.

Развертывание открытого ключа

Чтобы использовать пользовательский ключ, созданный выше, содержимое вашего открытого ключа (~\.ssh\id_ed25519.pub) необходимо поместить на сервер в текстовый файл, имя и расположение которого зависит от того, учетная запись пользователя является членом группы локальных администраторов или стандартной учетной записью пользователя.

Стандартный пользователь

Содержимое вашего открытого ключа (~\.ssh\id_ed25519.pub) необходимо поместить на сервер в текстовый файл с именем author_keys в папке C:\Users\username\.ssh\. Клиент OpenSSH включает scp, утилиту для безопасной передачи файлов, помогающую в этом.

В приведенном ниже примере открытый ключ копируется на сервер (где «имя пользователя» заменяется вашим именем пользователя). Сначала вам нужно будет использовать пароль для учетной записи пользователя на сервере.

Административный пользователь

Содержимое вашего открытого ключа (~\.ssh\id_ed25519.pub) необходимо поместить на сервер в текстовый файл с именем administrators_authorized_keys в C:\ProgramData\ssh\. Клиент OpenSSH включает scp, утилиту для безопасной передачи файлов, помогающую в этом. ACL для этого файла необходимо настроить так, чтобы разрешить доступ только администраторам и системе.

В приведенном ниже примере открытый ключ копируется на сервер и настраивается ACL (где «имя пользователя» заменяется вашим именем пользователя). Сначала вам нужно будет использовать пароль для учетной записи пользователя на сервере.

В этом примере показаны шаги по созданию файлаadmins_authorized_keys. Если он запускается несколько раз, он каждый раз перезаписывает этот файл. Чтобы добавить открытый ключ для нескольких пользователей с правами администратора, вам необходимо добавить в этот файл каждый открытый ключ.

Эти шаги завершают настройку, необходимую для использования проверки подлинности на основе ключей с OpenSSH в Windows. После этого пользователь может подключиться к хосту sshd с любого клиента, у которого есть закрытый ключ.

После того, как вы проверили существующие ключи SSH, вы можете сгенерировать новый ключ SSH для аутентификации, а затем добавить его в ssh-agent.

О создании ключа SSH

Если у вас еще нет ключа SSH, необходимо создать новый ключ SSH для аутентификации. Если вы не уверены, есть ли у вас ключ SSH, вы можете проверить наличие существующих ключей. Дополнительные сведения см. в разделе «Проверка существующих ключей SSH».

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

Если вы не хотите повторно вводить парольную фразу каждый раз, когда используете ключ SSH, вы можете добавить свой ключ в агент SSH, который управляет вашими ключами SSH и запоминает вашу парольную фразу.

Создание нового ключа SSH

Открыть Терминал Терминал Git Bash.

Вставьте приведенный ниже текст, заменив его своим адресом электронной почты GitHub.

Примечание. Если вы используете устаревшую систему, которая не поддерживает алгоритм Ed25519, используйте:

При этом создается новый ключ SSH с использованием предоставленного адреса электронной почты в качестве метки.

Когда вам будет предложено "Введите файл для сохранения ключа", нажмите Enter. Это принимает расположение файла по умолчанию.

По запросу введите безопасную парольную фразу. Дополнительную информацию см. в разделе «Работа с парольными фразами SSH».

Добавление ключа SSH в ssh-agent

Прежде чем добавлять новый ключ SSH в ssh-agent для управления вашими ключами, вы должны проверить наличие существующих ключей SSH и сгенерировать новый ключ SSH.При добавлении ключа SSH в агент используйте команду ssh-add по умолчанию для macOS, а не приложение, установленное macports, homebrew или каким-либо другим внешним источником.

Запустите ssh-агент в фоновом режиме.

В зависимости от вашей среды вам может понадобиться использовать другую команду. Например, вам может понадобиться использовать root-доступ, запустив sudo -s -H перед запуском ssh-agent, или вам может понадобиться использовать exec ssh-agent bash или exec ssh-agent zsh для запуска ssh-agent.

Если вы используете macOS Sierra 10.12.2 или более позднюю версию, вам потребуется изменить файл ~/.ssh/config, чтобы ключи автоматически загружались в ssh-agent и сохранялись пароли в цепочке ключей.

Сначала проверьте, существует ли ваш файл ~/.ssh/config в папке по умолчанию.

Если файл не существует, создайте его.

Откройте файл ~/.ssh/config, затем внесите в него следующие строки. Если ваш файл ключа SSH имеет другое имя или путь, чем пример кода, измените имя файла или путь, чтобы они соответствовали вашим текущим настройкам.

Примечание. Если вы решили не добавлять кодовую фразу к своему ключу, вам следует опустить строку UseKeychain.

Примечание. Если вы видите такую ​​ошибку

добавьте дополнительную строку конфигурации в раздел Host *:

Добавьте свой закрытый ключ SSH в ssh-agent и сохраните парольную фразу в цепочке ключей. Если вы создали свой ключ с другим именем или если вы добавляете существующий ключ с другим именем, замените id_ed25519 в команде на имя файла вашего закрытого ключа.

Примечание. Параметр -K — это стандартная версия Apple ssh-add , которая сохраняет парольную фразу в вашей цепочке ключей, когда вы добавляете ключ SSH в ssh-agent. Если вы решили не добавлять парольную фразу к своему ключу, запустите команду без параметра -K.

Если у вас не установлена ​​стандартная версия Apple, вы можете получить сообщение об ошибке. Дополнительные сведения об устранении этой ошибки см. в разделе «Ошибка: ssh-add: недопустимая опция — K».

В MacOS Monterey (12.0) флаги -K и -A устарели и заменены флагами --apple-use-keychain и --apple-load-keychain соответственно.

Добавьте ключ SSH в свой аккаунт на GitHub. Дополнительные сведения см. в разделе «Добавление нового ключа SSH в вашу учетную запись GitHub».

Если у вас установлен GitHub Desktop, вы можете использовать его для клонирования репозиториев, а не для работы с ключами SSH.

Убедитесь, что агент ssh запущен. Вы можете воспользоваться инструкциями «Автозапуск ssh-agent» в разделе «Работа с парольными фразами SSH» или запустить его вручную:

Добавьте свой закрытый ключ SSH в ssh-agent. Если вы создали свой ключ с другим именем или если вы добавляете существующий ключ с другим именем, замените id_ed25519 в команде на имя файла вашего закрытого ключа.

Добавьте ключ SSH в свой аккаунт на GitHub. Дополнительные сведения см. в разделе «Добавление нового ключа SSH в вашу учетную запись GitHub».

Запустите ssh-агент в фоновом режиме.

В зависимости от вашей среды вам может понадобиться использовать другую команду. Например, вам может понадобиться использовать root-доступ, запустив sudo -s -H перед запуском ssh-agent, или вам может понадобиться использовать exec ssh-agent bash или exec ssh-agent zsh для запуска ssh-agent.

Добавьте свой закрытый ключ SSH в ssh-agent. Если вы создали свой ключ с другим именем или если вы добавляете существующий ключ с другим именем, замените id_ed25519 в команде на имя файла вашего закрытого ключа.

Добавьте ключ SSH в свой аккаунт на GitHub. Дополнительные сведения см. в разделе «Добавление нового ключа SSH в вашу учетную запись GitHub».

Создание нового ключа SSH для аппаратного ключа безопасности

Если вы используете macOS или Linux, вам может потребоваться обновить клиент SSH или установить новый клиент SSH перед созданием нового ключа SSH. Дополнительные сведения см. в разделе «Ошибка: неизвестный тип ключа».

Вставьте аппаратный ключ безопасности в свой компьютер.

Открыть Терминал Терминал Git Bash.

Вставьте приведенный ниже текст, заменив адрес электронной почты своей учетной записи на GitHub.

Примечание. Если команда завершается сбоем и вы получаете сообщение об ошибке недопустимый формат или функция не поддерживается, возможно, вы используете аппаратный ключ безопасности, который не поддерживает алгоритм Ed25519. Вместо этого введите следующую команду.

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

Когда вам будет предложено "Введите файл, в котором нужно сохранить ключ", нажмите Enter, чтобы принять расположение файла по умолчанию.

Когда вам будет предложено ввести кодовую фразу, нажмите Enter.

Добавьте ключ SSH в свой аккаунт на GitHub. Дополнительные сведения см. в разделе «Добавление нового ключа SSH в вашу учетную запись GitHub».

  • "О SSH"
  • "Работа с парольными фразами SSH"
  • "Авторизация ключа SSH для использования с единым входом SAML" в документации GitHub Enterprise Cloud

Помогите нам сделать эти документы лучше!

Все документы GitHub имеют открытый исходный код. Видите что-то неправильное или непонятное? Отправьте запрос на вытягивание.

Читайте также: