Blog/content/posts/2022/ssh-auth-with-key.md

97 lines
2.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: "🔐 Авторизация SSH по ключам"
date: 2022-09-24T10:13:30+03:00
draft: false
tags: [ssh, tips, privacy]
---
## Шаг первый - создание ключа на локальной машине
Для генерации ключа на локальной машине необходимо выполнить команду `ssh-keygen`:
```text
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa):
```
В ответ прошрамме необходимо указать путь куда будет сохранён ключ.
В моём случае имя ключа будет `kvm`:
```text
/home/user/.ssh/kvm
```
Далее необходимо дважды ввести пароль для ключа:
```text
Enter passphrase (empty for no passphrase):
```
После этого ключ будет создан,
а в директории `~/.ssh` появится два файла: `kvm` и `kvm.pub`.
```text
The key's randomart image is:
+---[RSA 3072]----+
| .. |
+----[SHA256]-----+
```
## Шаг второй - копирование публичного ключа на удалённую машину
Выполняем команду:
```sh
ssh-copy-id -i ~/.ssh/kvm <username>@<remotehost>
```
и вводим пароль от `username`:
```text
username@remotehost's password:
```
Если всё сделано верно, программа вернёт следующий ответ:
```text
Number of key(s) added: 1
Now try logging into the machine, with: "ssh 'user_name@remote_host'"
and check to make sure that only the key(s) you wanted were added.
```
Готово.
Можно ещё создать файл `~/.ssh/config`, чтобы задать алиасы, а также другие настройки.
Например можно указать имя пользователя и путь к ключу.
```text
Host github.com
User iiiypuk
IdentityFile /home/user/.ssh/github
Host remote_host
User alex
HostName 0.0.0.0
IdentityFile /home/user/.ssh/kvm
ServerAliveInterval 59
```
А после уже можно будет подключаться просто указывая хост.
```text
$ ssh remotehost
```
## Установка ключа вручную
Добавить ключа на удалённую машину можно ещё одним способом.
На удаленной машине необходимо добавить содержимое локального файла `kvm.pub`
в файл `~/.ssh/authorized_keys` на сервере.
```sh
echo public_key_string >> ~/.ssh/authorized_keys
```