Blog/content/posts/2022/ssh-auth-with-key.md
2023-02-06 23:15:20 +03:00

2.8 KiB
Raw Blame History

title date lastmod draft tags
🔐 Авторизация SSH по ключам 2022-09-24T10:13:30+03:00 2023-02-06T11:11:00+03:00 false
ssh
tips
privacy

Шаг первый - создание ключа на локальной машине

Для генерации ключа на локальной машине необходимо выполнить команду ssh-keygen:

Вызвав команду, пользователю будет предложено, указать путь куда будет сохранён ключ.

Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa):

В моём случае я указал путь и имя ключа kvm:

/home/user/.ssh/kvm

Далее необходимо дважды ввести пароль для ключа:

Enter passphrase (empty for no passphrase):

После этого ключ будет создан, а в директории ~/.ssh появится два файла: kvm и kvm.pub.

The key's randomart image is:
+---[RSA 3072]----+
|       ..        |
+----[SHA256]-----+
  • kvm — секретный ключ
  • kvm.pub — публичный ключ

Шаг второй - копирование публичного ключа на удалённую машину

Выполняем команду:

ssh-copy-id -i ~/.ssh/kvm <username>@<remotehost>

и вводим пароль от username:

username@remotehost's password:

Если всё сделано верно, программа вернёт следующий ответ:

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, чтобы задать алиасы, а также другие настройки.
Например можно указать имя пользователя и путь к ключу.

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

А после уже можно будет подключаться просто указывая хост.

$ ssh remotehost

Установка ключа вручную

Добавить ключа на удалённую машину можно ещё одним способом.

На удаленной машине необходимо добавить содержимое локального файла kvm.pub в файл ~/.ssh/authorized_keys на сервере.

echo public_key_string >> ~/.ssh/authorized_keys