# 🔐 Авторизация SSH по ключам # Шаг первый - создание ключа на локальной машине На локальной машине вводим команду ssh-keygen для генерации ключа ``` $ 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]-----+ ``` ## Шаг второй - копирование публичного ключа на удалённую машину ``` $ ssh-copy-id -i ~/.ssh/kvm user_name@remote_host ``` На этот вопрос отвечаем yes ``` Are you sure you want to continue connecting (yes/no/[fingerprint])? ``` Вводим пароль от user_name ``` user_name@remote_host'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 remote_host ``` ## Дополнительно Добавить ключа на удалённую машину можно ещё одним способом. Необходимо на удаленной машине добавить содержимое kvm.pub в файл ~/.ssh/authorized_keys ``` $ echo public_key_string >> ~/.ssh/authorized_keys ``` ----- => index.gmi 🔝 К unix заметкам