> For the complete documentation index, see [llms.txt](https://utm-1.gitbook.io/utm-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://utm-1.gitbook.io/utm-docs/dokumentaciya/utm-it/programmnoe-obespechenie/vneshnie-servisy/github/nastroika-podklyucheniya-k-github-po-ssh/sozdanie-klyucha-ssh-i-dobavlenie-v-ssh-agent.md).

# Создание ключа SSH и добавление в ssh-agent

{% embed url="<https://docs.github.com/ru/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent#adding-your-ssh-key-to-the-ssh-agent>" %}

## SSH ключи для доступа к GitHub

{% hint style="info" %}
SSH ключи на Windows должны храниться в папке пользователя

C:\Users\\<пользователь>\\.ssh

SSH ключи в WSL должны храниться в папке пользователя

\~/.ssh
{% endhint %}

{% hint style="info" %}
В Windows можно обратиться к этой папке через bash терминал

Для этого необходимо запустить **git-bash**

В этом терминале эта папка будет находиться тут:

\~/.ssh
{% endhint %}

{% hint style="info" %}
В WSL посмотреть установленные SSL ключи можно выполнив команду

```
$ ls -al ~/.ssh
# Lists the files in your .ssh directory, if they exist
```

{% endhint %}

В папке .ssh должны быть 2 ключа:

1. Публичный ключ, как правило, имеет имя id\_rsa.pub (для RSA) или id\_ed25519.pub (для ED25519)
2. Приватный ключ, как правило, имеет имя id\_rsa (для RSA) или id\_ed25519 (для ED25519)

### Хранение SSH ключей в облаке

Рекомендуется хранить копию всех ключей (копию всей папки .ssh) в облаке на диске O.

O:\Документы\\.ssh

### Использование существующих SSH ключей

Если в папке C:\Users\\<пользователь>\\.ssh нет нужных SSH ключей, но они есть в вашем облаке, то их нужно скопировать из облака в папку .ssh на ваш компьютер.

{% hint style="info" %}
Также дополнительно нужно скопировать ключи в папку пользователя \~/.ssh в WSL
{% endhint %}

### Генерация новой пары SSH ключей

{% embed url="<https://docs.github.com/ru/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent#generating-a-new-ssh-key>" %}

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

1. Откройте git-bash

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

   <pre class="language-shell"><code class="lang-shell"><strong>ssh-keygen -t ed25519 -C "your_email@example.com"
   </strong></code></pre>

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

   ```shell
   > Generating public/private ALGORITHM key pair.
   ```

   Когда вам будет предложено «Введите файл для сохранения ключа», нажмите **Enter** , чтобы принять расположение файла по умолчанию. Обратите внимание: если вы ранее создавали ключи SSH, ssh-keygen может попросить вас перезаписать другой ключ. В этом случае мы рекомендуем создать ключ SSH с собственным именем. Для этого введите расположение файла по умолчанию и замените id\_ALGORITHM на имя вашего собственного ключа.

   ```powershell
   > Enter file in which to save the key (/c/Users/YOU/.ssh/id_ALGORITHM):[Press enter]
   ```

3. В командной строке введите безопасную парольную фразу.

   ```shell
   > Enter passphrase (empty for no passphrase): [Type a passphrase]
   > Enter same passphrase again: [Type passphrase again]
   ```

   Рекомендуется не указывать парольную фразу.

В результате в папке C:\Users\\<пользователь>\\.ssh будут созданы 2 ключа:

* Публичный ключ: **id\_ed25519.pub**
* Приватный ключ: **id\_ed25519**

Скопируйте созданные ключи в своё облако в папку O:\Документы\\.ssh чтобы их можно было использовать в будущем на других ваших компьютерах.

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

{% embed url="<https://docs.github.com/ru/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent#adding-your-ssh-key-to-the-ssh-agent>" %}

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

Если у вас установлен [GitHub Desktop](https://desktop.github.com/) , вы можете использовать его для клонирования репозиториев и не иметь дела с ключами SSH.

1. В новом окне PowerShell *с правами администратора* убедитесь, что агент ssh-agent запущен. Вы можете воспользоваться инструкциями по автоматическому запуску агента ssh-agent в разделе « [Работа с парольными фразами для ключей SSH](https://docs.github.com/en/articles/working-with-ssh-key-passphrases) » или запустить его вручную:

   ```powershell
   # start the ssh-agent in the background
   Get-Service -Name ssh-agent | Set-Service -StartupType Manual
   Start-Service ssh-agent
   ```
2. В окне терминала без повышенных прав добавьте свой закрытый ключ SSH в ssh-agent. Если вы создали ключ с другим именем или добавляете существующий ключ с другим именем, замените *id\_ed25519* в команде на имя файла вашего закрытого ключа.

   ```powershell
   ssh-add c:/Users/YOU/.ssh/id_ed25519
   ```
3. Добавьте открытый ключ SSH в свою учётную запись на GitHub. Подробнее см. в статье « [Добавление нового ключа SSH в учётную запись GitHub»](https://docs.github.com/en/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account) .

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

{% hint style="warning" %}
Необходимость пока под вопросом
{% endhint %}

1. Предварительно пара SSH ключей должна быть скопирована в папку пользователя \~/.ssh в WSL<br>

   В WSL посмотреть установленные SSL ключи можно выполнив команду

   ```
   $ ls -al ~/.ssh
   # Lists the files in your .ssh directory, if they exist
   ```
2.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://utm-1.gitbook.io/utm-docs/dokumentaciya/utm-it/programmnoe-obespechenie/vneshnie-servisy/github/nastroika-podklyucheniya-k-github-po-ssh/sozdanie-klyucha-ssh-i-dobavlenie-v-ssh-agent.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
