SSH, генерация и авторизация по ключам на VPS/VDS
Когда вы подключаетесь к своему серверу VPS/VDS по SSH, удаленный сервер запрашивает пароль. Если пароль сложный, а заходить на сервер нужно часто — можно настроить авторизацию по ключам.
[svetozar@Jarvis ~]$ ssh root@XX.XX.XX.XX
The authenticity of host 'XX.XX.XX.XX (XX.XX.XX.XX)' can't be established.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'XX.XX.XX.XX' (ECDSA) to the list of known hosts.
root@XX.XX.XX.XX's password:
Для этого вам нужно создать пару ключей и загрузить публичный ключ на ваш VPS/VDS сервер.
Для этого перейдите в директорию /.ssh
в корневой директории и выполните следующие команды:
cd ~/.ssh
ssh-keygen -t rsa -b 2048
После выполнения команды система задаст несколько вопросов:
Generating public/private rsa key pair.
Enter file in which to save the key (/home/svetozar/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
В ответ на все вопросы нужно просто нажимать [ENTER]. Результат будет следующим:
В самой же папке появятся два фала:
-rw-------. 1 svetozar svetozar 1572 дек 18 19:05 id_rsa
-rw-r--r--. 1 svetozar svetozar 292 дек 18 19:05 id_rsa.pub
Далее необходимо из публичного ключа сделать файл авторизованных ключей на сервере. Это можно сделать командой:
cat id_rsa.pub >> ~/.ssh/authorized_keys
Далее необходимо разместить файл authorized_keys
в соответствующий директории на сервере. Для этого нужно:
1. Открыть файл авторизованных ключей и скопировать содержимое файла.
gedit authorized_keys
(В вашей Linux системе может использоваться любой другой редактор, например nano, vi или vim)
2. Подключиться к серверу, введя пароль
ssh root@XX.XX.XX.XX
3) Выполнить следующие команды:
[root@vds ~]# cd /root/
[root@vds ~]# mkdir .ssh
[root@vds ~]# cd .ssh/
[root@vds .ssh]# touch authorized_keys
[root@vds .ssh]# vim authorized_keys
В последней команде мы вставляем скопированный код ключей авторизации.
Вы можете использовать любой удобный вам консольный редактор текста.
Далее Вам нужно закрыть терминал и открыть его. Теперь вы будете сразу авторизоваться на сервере, посредством ввода команды ssh root@XX.XX.XX.XX
.
Если у вас много серверов, вы можете использовать один authorized_keys
для всех.
Также для того, чтобы постоянно не прописывать ip, можно добавить alias
в .bashrc
пользователя на вашем ПК.
alias srv1='ssh root@XX.XX.XX.XX'
alias srv2='ssh root@XX.XX.XX.X2'
alias srv3='ssh root@XX.XX.XX.X3'
Все, что нужно будет прописать в ваш терминал — это srv1
для подключения к первому серверу и srv2
для подключения к другому. Вместо srv
можно указать любое удобное для вас название.
Если вы производите подключение в Windows через PuTTY, вам понадобится приложение PuTTY Key Generator. Скачайте и запустите PuTTY Key Generator.
Выберите в параметрах SSH-2 RSA и нажмите «Generate»
Далее вы получите код.
Здесь нужно будет скачать публичный и приватный ключ.
Публичный необходимо загрузить на сервер. Как это сделать было описано выше. Приватный указывать в приложении, через которое вы подключаетесь к серверу.
Так это выглядит через WinSCP:
Настройка авторизации на сервере завершена, вам не нужно будет постоянно вводить пароль. Ключи настроены.