From e4de575a61e8378f3c326dc2f6707f2b9f003f74 Mon Sep 17 00:00:00 2001 From: Alexander Popov Date: Sat, 24 Sep 2022 15:14:32 +0300 Subject: [PATCH] ssh auth with key --- content/posts/2022/ssh-auth-with-key.md | 96 +++++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 content/posts/2022/ssh-auth-with-key.md diff --git a/content/posts/2022/ssh-auth-with-key.md b/content/posts/2022/ssh-auth-with-key.md new file mode 100644 index 0000000..4cf2c6d --- /dev/null +++ b/content/posts/2022/ssh-auth-with-key.md @@ -0,0 +1,96 @@ +--- +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`: + +```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 +```