# RSA Keys Setup

<div class="page-header-headings" id="bkmrk-%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0-rsa-%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%B9"><div class="headline grey--text text--darken-3">Настройка RSA ключей </div></div>#### <span style="color: rgb(22, 145, 121);">**Генерация RSA ключей (клиент)**</span>

##### <span style="color: rgb(53, 152, 219);">RSA ключи (nix/mac)</span>

[**git-scm.com Guide**](https://git-scm.com/book/ru/v2/Git-%D0%BD%D0%B0-%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%B5-%D0%93%D0%B5%D0%BD%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D1%8F-%D0%BE%D1%82%D0%BA%D1%80%D1%8B%D1%82%D0%BE%D0%B3%D0%BE-SSH-%D0%BA%D0%BB%D1%8E%D1%87%D0%B0)

```ruby
ssh-keygen -o -t rsa -b 4096 -C xeonmp22@gmail.com
```

```ruby
Generating public/private rsa key pair.
Enter file in which to save the key (/home/xeon/.ssh/id_rsa): home
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in home
Your public key has been saved in home.pub
```

**Сгенерируется 2 файла:**

- Приватный ключ `~/.ssh/home`
- Публичный ключ `~/.ssh/home.pub`

<p class="callout warning">Необходимо скопировать (в буфер обмена) текст файла публичного ключа - **home.pub**  
На клиенте достаточно оставить только приватный ключ - **home**</p>

##### <span style="color: rgb(53, 152, 219);">RSA ключи (win)</span>

**[learn.microsoft.com Guide](https://docs.microsoft.com/ru-ru/azure/virtual-machines/linux/ssh-from-windows#create-an-ssh-key-pair)**

Запустите `C:\Windows\System32\cmd.exe` от имени Администратора

```ruby
mkdir C:\Users\%USERNAME%\.ssh cd C:\Users\%USERNAME%\.ssh
```

```ruby
ssh-keygen -m PEM -t rsa -b 4096
```

```ruby
Generating public/private rsa key pair.
Enter file in which to save the key (C:\Users\xeon/.ssh/id_rsa): home
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in home.
Your public key has been saved in home.pub.
```

<p class="callout warning">Необходимо скопировать (в буфер обмена) текст файла публичного ключа - **home.pub**  
На клиенте достаточно оставить только приватный ключ - **home**</p>

#### <span style="color: rgb(22, 145, 121);">**Настройка публичных ключей (сервер)**</span>

##### <span style="color: rgb(53, 152, 219);">Публичный ключ (nix/mac)</span>

```ruby
mkdir ~/.ssh chmod 0700 ~/.ssh
```

**Создание файла публичного ключа**

```ruby
sudo tee ~/.ssh/my_key1.pub << 'EOF'
***
Вставить код публичного ключа - home.pub (из буфера обмена)
***
EOF
```

```ruby
chmod 0600 ~/.ssh/my_key1.pub
```

**Изменение конфигурации службы SSH**

```ruby
sudo tee /etc/ssh/sshd_config << 'EOF'
# Путь до публичных ключей  
AuthorizedKeysFile      .ssh/my_key1.pub
# Разрешить аутентификацию по ключу
RSAAuthentication yes
PubkeyAuthentication yes
# Запрет подключатся к SSH серверу по паролю  
PasswordAuthentication no
EOF
```

```ruby
sudo service sshd restart
```

##### <span style="color: rgb(53, 152, 219);">Доп. публичный ключ (nix/mac)</span>

<p class="callout warning">Необходимо скопировать (в буфер обмена) текст **НОВОГО** файла публичного ключа</p>

```ruby
sudo tee ~/.ssh/my_key2.pub << 'EOF'
***
Вставить код публичного ключа - home2.pub (из буфера обмена)
***
EOF
```

**Изменение конфигурации службы SSH**

```ruby
chmod 0600 ~/.ssh/my_key2.pub
```

```ruby
sudo tee /etc/ssh/sshd_config << 'EOF'
# Путь до публичных ключей
# Можно указывать несколько ключей через пробел
AuthorizedKeysFile      .ssh/my_key1.pub .ssh/my_key2.pub
EOF
```

```ruby
sudo service sshd restart
```

#### **<span style="color: rgb(22, 145, 121);">Подключение по SSH (к серверу)</span>**

##### <span style="color: rgb(53, 152, 219);">SSH (nix/mac)</span>

```ruby
ssh user@server-ip
# Ввести парольную фразу
```

**Получение fingerprint ключа из body ключа**

```ruby
ssh-keygen -E md5 -lf ~/.ssh/.pub | awk '{print $2}'
```

##### <span style="color: rgb(53, 152, 219);">SSH (win)</span>

**Загрузка и Установка пакета PuTTY**

- [Putty](https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html) (файл \*installer.msi)
- Либо установить ПО генерации ключей: [puttygen (64-bit)](https://the.earth.li/~sgtatham/putty/latest/w64/puttygen.exe)

**Настройка подключения к серверу в PuTTY**

- Необходимо запустить PuTTY.
- Находясь в категории Session ввести данные нового сервера:
- `Host Name (or IP address)` - указываем IP (либо домен сайта)
- `Saved Sessions` - Указываем удобное вам имя сервера (может совпадать с Host Name)
- Нажимаем кнопку `Save`
- Переходим в категорию `SSH/Auth` и указываем путь до нашего приватного ключа:

[![putty.jpg](https://wiki-docs.ru/uploads/images/gallery/2026-07/scaled-1680-/putty.jpg)](https://book.wiki-docs.ru/uploads/images/gallery/2026-07/putty.jpg)

- Возвращаемся в категорию `Session` и нажимаем кнопку `Save` (важно чтоб был выделен наш новый сервер)
- Нажимаем кнопку `Open`
- В открывшемся окне консоли вводим логин и нашу `парольную фразу`