Чтобы лучше понять нашу тему, нам сначала нужно обсудить, что такое ключи SSH. Ключ SSH, также известный как ключ Secure Shell, представляет собой учетные данные для доступа к сетевому протоколу для SSH. Он является подлинным и зашифрованным, что обеспечивает чрезвычайно безопасный протокол. Он используется для того, чтобы разные машины взаимодействовали друг с другом в незащищенной открытой сети. Благодаря своей аутентификации он делает связь зашифрованной и безопасной. Этот протокол используется для удаленной передачи файлов и удаленного доступа к операционным системам.
Чтобы найти ключ SSH, нам нужно открыть терминал на нашем устройстве и ввести команду «ls -al ~/.ssh». Эта команда сообщает нам, присутствуют ли там существующие ключи SSH или нет. Точно так же мы можем использовать команду при работе с ключами SSH. Команда называется командой ssh-copy-id. Эта команда помогает нам установить ключи SSH на удаленном компьютере или авторизованные ключи сервера. Это помогает нам с входом в систему с помощью ключа SSH, что устраняет необходимость каждый раз вводить идентификатор входа и пароль. Команда SSH является частью инструмента OpenSSH, который используется для выполнения служб администрирования на удаленных устройствах с помощью зашифрованных соединений.
Копирование ключа SSH
Важно иметь в виду, что ключи SSH состоят из открытого ключа и закрытого ключа, прежде чем вы начнете. Открытый ключ передается удаленному серверу и используется для шифрования соединения, в то время как закрытый ключ хранится на вашем локальном компьютере и используется для расшифровки соединения.
Чтобы скопировать ключ SSH в Ubuntu, вам необходимо иметь существующую пару ключей SSH. Если у вас его нет, вы можете создать его с помощью команды ssh-keygen. Теперь, используя команду SSH keygen, мы создаем пару ключей, используя параметр -t, чтобы указать тип ключа для генерации (например, rsa, dsa и т. д.).
andreyex@linux-VirtualBox:~$ ssh-keygen -t rsa
Нажмите «Enter», чтобы выполнить команду. После указания местоположения и имени файла он получает от вас кодовую фразу. Чтобы защитить свой закрытый ключ, вы можете использовать парольную фразу в качестве дополнительного шага безопасности. Если вы введете кодовую фразу, вам будет предложено ввести ее всякий раз, когда вы используете ключ для подключения к удаленному серверу. Важно использовать надежную парольную фразу, которую трудно угадать. Вы можете ввести любую фразу по вашему желанию. В нашем случае мы оставляем его пустым. Для этого вводим в него «empty». После ввода этих данных мы получаем следующий отображаемый вывод:
Generating public/private rsa key pair. Enter file in which to save the key (/home/linux/.ssh/id_rsa): /home/linux/key.txt /home/linux/key.txt already exists. Overwrite (y/n)? y Enter passphrase (empty for no passphrase): Enter same passphrase again: Passphrases do not match. Try again. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/linux/key.txt Your public key has been saved in /home/linux/key.txt.pub The key fingerprint is: SHA256:zCpQ+8kEraxbmY90qq9m3JNNt+CEw905MfvSuJbyrps linux@linux-VirtualBox The key's randomart image is: +---[RSA 3072]----+ | | | . | | o . | | o + oo | | ..+o..S= | | o+*=o* | | ...*B*o B | | +++*+.* o | | o+++.EB+o | +----[SHA256]-----+
Команда ssh-keygen создает два файла: файл закрытого ключа (с расширением .pem или .ppk) и файл открытого ключа (с расширением .pub). Его можно увидеть в следующих фрагментах файлов с именем «key» вместе с его расширением, которое сохраняется в домашнем каталоге.
После создания пары ключей вы можете использовать команду cat, чтобы увидеть, что содержит открытый ключ. Домашняя папка содержит открытый ключ с именем файла «key.pub». Чтобы просмотреть содержимое открытого ключа, введите следующую команду:
andreyex@linux-VirtualBox:~$ cat ~/key.pub
Содержимое файла открытого ключа должно быть скопировано в буфер обмена. Вы можете сделать это, выделив содержимое файла и нажав клавиши Ctrl+C, или щелкнув правой кнопкой мыши окно терминала и выбрав опцию «Copy».
Подключитесь к удаленному серверу, на который вы хотите скопировать ключ, с помощью команды SSH, указав имя пользователя и имя хоста сервера. Например:
andreyex@linux-VirtualBox:~$ ssh user@hostname
Вы также можете вручную войти на удаленный сервер. Следует убедиться, что вы используете одного и того же пользователя. Откройте файл авторизованных ключей на удаленном сервере после установления соединения. Этот файл находится в каталоге ~/.ssh на сервере.
andreyex@linux-VirtualBox:~$ nano ~/.ssh/authorized_keys
Вставьте содержимое буфера обмена в файл author_keys, нажав клавиши Ctrl+V. Убедитесь, что ключ находится на одной строке и что нет лишних пробелов или разрывов строк.
Как мы видим в предыдущем фрагменте, мы не добавляли лишние пробелы в файл, потому что он выдает сообщение об ошибке при авторизации. Сохраните файл author_keys, нажав клавиши Ctrl+X. Затем нажмите клавишу Y, а затем клавишу Enter.
Для каталога /.ssh и файла /.ssh/authorized_keys должны быть установлены соответствующие разрешения после копирования открытого ключа на сервер, чтобы к ним могли получить доступ только авторизованные пользователи. Эта команда устанавливает разрешения для файла ~/.ssh/authorized_keys, чтобы только владелец (пользователь) мог читать и записывать разрешения.
Важно отметить, что разрешения для каталога ~/.ssh должны быть установлены на 700, а разрешения на файл ~/.ssh/authorized_keys должны быть установлены на 600, чтобы гарантировать, что закрытый ключ остается в безопасности. Для этого мы запускаем команду, которая отображается в следующем:
andreyex@linux-VirtualBox:~$ chmod 700 ~/.ssh andreyex@linux-VirtualBox:~$ chmod 600 ~/.ssh/authorized_keys
Команда chmod используется для изменения прав доступа к файлу или каталогу в Linux. Эти команды изменяют права доступа к файлам и папкам в определенном каталоге и author_keys соответственно и обеспечивают доступ к файлам только их владельцу.
Сделайте еще одну попытку подключения через SSH к серверу, указав имя пользователя и имя хоста сервера:
andreyex@linux-VirtualBox:~$ ssh user@hostname
Если вы задали парольную фразу при создании ключа SSH, она будет запрошена. Если все настроено правильно, вы сможете подключиться к серверу.
Заключение
Мы научились копировать SSH-ключ в Ubuntu. Этот процесс полезен, когда вы хотите настроить вход без пароля на удаленный сервер или когда вы хотите поделиться своим SSH-ключом с другом или коллегой. Помните, что существует множество вариантов этой процедуры в зависимости от требований вашего сценария.