> For the complete documentation index, see [llms.txt](https://surftest.gitbook.io/axelar-wiki/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://surftest.gitbook.io/axelar-wiki/russian/bezopasnost/vkhod-po-ssh-klyuchu-+-otklyuchenie-parolya.md).

# Вход по SSH ключу + отключение пароля

Преступаем к следующему логическому шагу в настройке безопасности - заменить вход по паролю на вход по ключу, который мы сгенерируем. Подробнее по ссылке <https://timeweb.com/ru/community/articles/kak-podklyuchitsya-k-serveru-cherez-ssh-po-parolyu-ili-klyuchu>

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

Вы можете пропустить установку SSH ключа и перейти к [2FA защите](/axelar-wiki/russian/bezopasnost/2fa-dlya-ssh.md) - при входе будет требоваться пароль и затем шестизначный код от Google Authenticator. Но можно установить оба варианта.

{% hint style="info" %}
Через консоль личного кабинета, допустим Vultr войти можно будет даже при таких настройках, поэтому для безопасности своего личного кабинета надо подключать 2FA авторизацию на сайте хостинг провайдера.
{% endhint %}

## Шаги подключения входа по SSH keys

1. Генерируем SSH ключи. Закидываем в нужные места.
2. Проверка входа.
3. Отключение входа по паролю.

## Генерируем SSH ключи

Выберите нужный вам гайд. Если ваш ПК на Windows - сразу переходите к пункту [б) Генерация на ПК с Windows](#a-generaciya-na-pk-s-linux-macos-1).

### a) Генерация на ПК с Linux/macOS  <a href="#keygen_for_linux_macos" id="keygen_for_linux_macos"></a>

На Unix есть встроенный генератор ключей.&#x20;

Запускаем терминал и вводим:

```
ssh-keygen
```

{% hint style="info" %}
Будет **возможность задать пароль для SSH ключей**. Это дополнительно вас защитит от возможной кражи ключей. Главное записать пароль в сохранном месте.

Если не хотите задавать пароль - нажмите **Enter**
{% endhint %}

Готово, ключи созданы и хранятся в папке **\~/.ssh/** &#x20;

`~/.ssh/id_rsa` - приватный key. Должен быть на ПК.

`~/.ssh/id_rsa.pub` - публичный key. Должен быть на сервере.

#### Закидываем публичный ключ на сервер

Можно конечно скопировать как это делается на Windows:\
1\. Зайдем на сервер, создадим и настроим репризиторию (вводим по очереди):

```
mkdir ~/.ssh
chmod 0700 ~/.ssh
touch ~/.ssh/authorized_keys
chmod 0644 ~/.ssh/authorized_keys
```

Теперь копируем в буфер обмена весь публичный ключ из файла `id_rsa.pub`.\
Далее вводим на сервере

```
cat > .ssh/authorized_keys
```

После чего, вставляем скопированный текст ключа, нажав **shift**+**insert** и завершаем процесс ввода кнопками **ctrl**+**D**.

Но в Unix системах это можно сделать легче, чем в Windows. Для этого откроем терминал и введем команду:

```
ssh-copy-id root@ххх.ххх.ххх.ххх
```

Где: \
`root` - пользователь которым мы хотим заходить на сервер по ssh ключам.\
`ххх.ххх.ххх.ххх` - ip адрес сервера.

Если вы хотите **указать путь к public key**, который нужно переместить на сервер. А так же ssh порт сервера (подробнее об этом в статье от [alexandreyex](https://andreyex.ru/linux/kak-ispolzovat-komandu-ssh-copy-id/)):

```
ssh-copy-id -i /home/user/.ssh/id_rsa_test.pub -p 22 root@ххх.ххх.ххх.ххх

# You should specify your path to public key and ssh port of your server
```

Готово. Можно переходить к пункту проверки входа по SSH ключу.

### б) Генерация на ПК с Windows <a href="#keygen_for_windows" id="keygen_for_windows"></a>

Нам понадобится 3 программы:

1. [Putty](https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html)
2. [Puttygen](https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html)
3. [WinSCP](https://winscp.net/download/WinSCP-5.19.5-Setup.exe)

1\) В графе **“**&#x54;ype of key to generate” выбираем **SSH-2 RSA** (именно этот тип. Если в главном окне нет, то выберите в верхнем меню “Key”) **2048.**

<img src="/files/n1AGvcg4xx94TJYM4IX4" alt="" data-size="original">

2\) Теперь нажимаем **Generate.**

3\) Чтобы ключ сгенерировался надо водить мышкой по экрану.

4\) Сохраняем приватный ключь на ПК. Для этого жмем кнопку Save private key.

#### Закидываем публичный ключ на сервер

1\. Зайдем на сервер, создадим и настроим директорию с файлом (вводим по очереди):

```
mkdir ~/.ssh
chmod 0700 ~/.ssh
touch ~/.ssh/authorized_keys
chmod 0644 ~/.ssh/authorized_keys
```

2\. Теперь копируем в буфер обмена весь публичный ключ из файла публичного ключа, либо как показано на рисунк&#x435;**:**

<img src="/files/aFES6y2BKqrDdzHF12Pa" alt="" data-size="original">

3\. Далее вводим на сервере

```
cat > .ssh/authorized_keys
```

После чего, вставляем скопированный текст ключа, нажав **shift**+**insert** и завершаем процесс ввода кнопками **ctrl**+**D**.\ <img src="/files/AEQDyWJ42zTYNY1MGhDx" alt="" data-size="original">

Готово. Публичный ключ вставлен в файл.

## Проверка входа по SSH ключу.

Не только проверим, но и сохраним сессию для дальнейшей удобной работы.

1\) На вкладке session вставляем IP и порт:

![](/files/HUo2Rvov5nG1nfOxFsWi)

2\) Переходим в раздел **Connection — SSH — Auth** и прописываем путь к приватному ключу, который мы создали и поместили в нужную нам папку:

<img src="/files/pghDVl4LwTeit7yEJvKw" alt="" data-size="original">

3\) Переходим опять в раздел Session --> Придумываем название сессии --> Сохраняем сессию --> И заходим в нее.

![](/files/81ZqISt01SwkBQtQkd58)

Если все успешно получилось, нам остается лишь запретить вход по паролю.

## Отключение входа по паролю.

Убедитесь, что ключ надежно сохранен и вы его не потеряете, потому что по паролю вы больше не войдете (только через консоль в личном кабинете провайдера, либо через [VNS](https://timeweb.com/ru/community/articles/kak-podklyuchitsya-k-serveru-po-vnc#interesting)).

Авторизуйтесь на сервере, затем откройте для редактирования конфигурационный файл /etc/ssh/sshd\_config :

```
sudo nano /etc/ssh/sshd_config
```

Найдите там строку `PasswordAuthenticatin yes`. Нужно установить ее значение в No:

```
PasswordAuthentication no
```

![](https://miro.medium.com/max/1018/0*BZ-WOe4zpvkL_kLB.png)

Перезагрузим сервис:

```
sudo systemctl restart sshd
```

Все готово! 🎉<br>
