Как сгенерировать ssh keys linux

Как сгенерировать открытый/закрытый SSH-ключ в Linux

Если вы часто используете ssh для подключения к удаленному хосту, одним из способов обеспечения безопасности соединения является применение открытого/закрытого SSH-ключа, так как при этом по сети не передается никакой пароль и система устойчива к атакам методом «грубой силы».
Создать открытый/закрытый SSH-ключ в Linux очень просто.

1. Откройте терминал. Введите:

Альтернативой является использование для создания ключа технологии DSA (Digital Signing Algorithm):

Примечание: Было много дебатов о том, что безопаснее, DSA или RSA. По моему мнению, если только вы не любитель копаться в технических подробностях, большой разницы между этими технологиями нет. Обе работают хорошо.

Как сгенерировать ssh keys linux. ssh keygen. Как сгенерировать ssh keys linux фото. Как сгенерировать ssh keys linux-ssh keygen. картинка Как сгенерировать ssh keys linux. картинка ssh keygen.

3. Далее, вас попросят ввести идентификационную фразу. Это не идентификационная фраза для соединения с удаленным хостом. Это идентификационная фраза для разблокировки закрытого ключа, поэтому она не поможет вам получить доступ к удаленному серверу, даже если на нем хранится ваш закрытый ключ. Ввод идентификационной фразы не является обязательным. Чтобы оставить ее пустой, просто нажмите «Enter».

Как сгенерировать ssh keys linux. ssh passphrase. Как сгенерировать ssh keys linux фото. Как сгенерировать ssh keys linux-ssh passphrase. картинка Как сгенерировать ssh keys linux. картинка ssh passphrase.

5. Загрузите файл id_rsa.pub в домашнюю директорию вашего удаленного хоста (предполагается, что удаленный хост работает под Linux). Подключитесь к удаленному хосту с помощью SSH и переместите открытый ключ в его целевую директорию с помощью команд:

6. Оставаясь на удаленном хосте, откройте конфигурационный файл SSH:

Убедитесь, что следующие атрибуты имеют корректные значения:

Нажмите «ctrl + o», чтобы сохранить изменения, затем «ctrl + x», чтобы закрыть файл.

7. И последнее, перезапустите сервер SSH на удаленном хосте:

На этом все. Теперь вы можете соединяться со своим удаленным хостом с помощью команды:

Источник

Подробные инструкции. Создание ключей SSH для аутентификации на виртуальной машине Linux в Azure и управление этими ключами

Область применения: ✔️ виртуальных машин Linux ✔️ гибких масштабируемых наборов

С помощью пары ключей Secure Shell (SSH) можно создать виртуальную машину Linux, использующую ключи SSH для проверки подлинности. В этой статье показано, как создать и использовать пару файлов открытого и закрытого ключей SSH RSA для клиентских соединений по SSH.

сведения о создании ключей ssh и их использовании для подключения к виртуальной машине Linux с Windows компьютера см. в статье использование ключей ssh с Windows в Azure. Вы также можете использовать портал Azure для создания ключей SSH и управления ими при создании виртуальных машин на портале.

Общие сведения о SSH и ключах

SSH — это протокол зашифрованного подключения, обеспечивающий безопасный вход в систему через незащищенные соединения. SSH — это протокол подключения по умолчанию для виртуальных машин Linux, размещенных в Azure. Хотя протокол SSH и обеспечивает зашифрованное подключение, использование паролей для соединений SSH все же сохраняет уязвимость виртуальной машины к атакам методом подбора. Мы рекомендуем подключаться к виртуальной машине по SSH с помощью пары «открытый ключ — закрытый ключ», также известных как ключи SSH.

Открытый ключ размещается на виртуальной машине с ОС Linux.

Закрытый ключ остается в локальной системе. Его нужно защищать и нельзя никому предоставлять.

При использовании клиента SSH для подключения к виртуальной машине Linux (с открытым ключом) удаленная виртуальная машина проверяет, имеется ли у клиента правильный закрытый ключ. Если у клиента есть закрытый ключ, он получает доступ к виртуальной машине.

В зависимости от политик безопасности организации вы можете использовать отдельную пару из открытого и закрытого ключей для доступа к нескольким виртуальным машинам и службам Azure. Не нужно выделять отдельную пару ключей для каждой виртуальной машины или службы, к которой необходим доступ.

Открытый ключ можно предоставить любому пользователю, но только вы (или ваша локальная инфраструктура безопасности) должны иметь доступ к вашему закрытому ключу.

Поддерживаемые форматы ключей SSH

В настоящее время платформа Azure поддерживает пары из открытого и закрытого ключей SSH-2 RSA длиной не менее 2048 битов. Другие форматы ключей, например ED25519 и ECDSA, не поддерживаются.

Использование ключей SSH и их преимущества

/.ssh/authorized_keys на виртуальной машине. Ключи SSH в

Если вы не хотите использовать ключи SSH, можно настроить на виртуальной машине Linux проверку пароля. Этого достаточно для виртуальных машин без интернет-доступа. Но пользователь по-прежнему должен управлять паролями каждой своей виртуальной машины, а также обеспечивать соответствующие политики паролей и предоставлять рекомендации, к примеру, в отношении минимальной длины паролей и частоты их обновления.

Создание ключей с помощью ssh-keygen

Ключи SSH по умолчанию хранятся в каталоге

Простой пример

Приведенная ниже команда ssh-keygen создает файлы 4096-разрядных открытого и закрытого ключей SSH RSA в каталоге

/.ssh по умолчанию. Если в текущем каталоге существует пара ключей SSH, они будут перезаписаны.

Подробный пример

В следующем примере показаны дополнительные параметры команды для создания пары ключей SSH RSA. Если в текущем каталоге существует пара ключей SSH, они будут перезаписаны.

Описание команды

ssh-keygen — программа, с помощью которой создаются ключи.

-m PEM — преобразование ключа в формат PEM.

-t rsa — тип создаваемого ключа; в данном случае создается ключ в формате RSA.

-b 4096 — количество битов в ключе; в данном случае ключ содержит 4096 битов.

-C «azureuser@myserver» — комментарий, который будет добавлен в конец файла открытого ключа для идентификации. Обычно в качестве комментария используется адрес электронной почты, но вы можете выбрать для своей инфраструктуры любой удобный метод идентификации.

-N mypassphrase — дополнительная парольная фраза, используемая для доступа к файлу закрытого ключа.

Пример с ssh-keygen

Сохраненные файлы ключей

Enter file in which to save the key (/home/azureuser/.ssh/id_rsa):

Список содержимого каталога

Парольная фраза ключа

Enter passphrase (empty for no passphrase):

Мы настоятельно рекомендуем добавить парольную фразу в закрытый ключ. Если не защитить файл ключа парольной фразой, любой пользователь, у которого есть этот файл, сможет использовать его, чтобы войти на любой из серверов, на котором используется соответствующий открытый ключ. Добавив парольную фразу, вы усилите защиту на случай, если другой пользователь получит доступ к файлу закрытого ключа. Это даст вам время, чтобы изменить ключи.

Автоматическое создание ключей во время развертывания

При использовании Azure CLI для создания виртуальной машины можно дополнительно создать файлы открытого и закрытого ключей SSH, выполнив команду AZ VM Create с параметром. Эти ключи хранятся в каталоге

/.ssh. Обратите внимание на то, что этот параметр команды не перезаписывает ключи, если они уже существуют в данном расположении.

Предоставление открытого ключа SSH при развертывании виртуальной машины

Чтобы создать виртуальную машину Linux, которая использует ключи SSH для аутентификации, укажите свой открытый ключ SSH при создании виртуальной машины с помощью портала Azure, интерфейса командной строки, шаблонов Resource Manager или других методов. При использовании портала вводится значение открытого ключа. Если вы используете Azure CLI для создания виртуальной машины с существующим открытым ключом, укажите значение или расположение этого открытого ключа, выполнив команду AZ VM Create с параметром.

/.ssh/id_rsa.pub расположением файла собственного открытого ключа.

Выходные данные должны быть следующего вида (здесь показана исправленная версия).

Если вы копируете содержимое файла открытого ключа и вставляете его на портале Azure или в шаблон Resource Manager, в этом содержимом не должно быть дополнительных пробелов или символов разрыва строки. Например, при использовании macOS можно передать файл открытого ключа (по умолчанию

/.ssh/id_rsa.pub для копирования содержимого (существуют другие программы Linux, которые выполняют те же действия, например xclip ).

Если вы предпочитаете использовать открытый ключ в многострочном формате, можно создать ключ в формате RFC4716 в контейнере pem открытого ключа, созданного ранее.

Чтобы создать ключ в формате RFC4716 из существующего открытого ключа SSH, выполните следующую команду:

Установление SSH-подключения к виртуальной машине с помощью клиента SSH

С помощью открытого ключа, развернутого на виртуальной машине Azure, и закрытого ключа в локальной системе установите SSH-подключение к виртуальной машине, используя ее IP-адрес или DNS-имя. Замените azureuser и myvm.westus.cloudapp.azure.com в приведенной команде, указав имя пользователя администратора и полное доменное имя (или IP-адрес).

Если при создании пары ключей вы указали парольную фразу, введите ее при появлении запроса во время входа в систему. (Сервер добавляется в папку

Если виртуальная машина использует политику доступа JIT, запросите доступ, прежде чем подключиться к виртуальной машине. Дополнительные сведения о политике JIT см. в статье Управление доступом к виртуальным машинам с помощью JIT-доступа.

Использование ssh-agent для хранения парольной фразы закрытого ключа

С помощью ssh-agent и ssh-add сообщите системе SSH о файлах ключей, чтобы вам не нужно было использовать парольную фразу в интерактивном режиме.

Копирование ключа на имеющуюся виртуальную машину с помощью ssh-copy-id

Если виртуальная машина Linux уже создана, вы можете добавить для нее новый открытый ключ SSH с помощью ssh-copy-id :

Создание и настройка файла конфигурации SSH

Чтобы ускорить процесс входа и оптимизировать поведение клиента SSH, можно создать и настроить файл конфигурации SSH

В следующем примере показана простая конфигурация, которую можно использовать для быстрого входа на определенную виртуальную машину в качестве пользователя с помощью закрытого ключа SSH по умолчанию.

Изменение файла для добавления новой конфигурации SSH

Добавьте параметры конфигурации для виртуальной машины узла. В этом примере имя виртуальной машины — myvm, а имя учетной записи — azureuser.

Можно добавить конфигурации для дополнительных узлов, чтобы каждый из них мог использовать собственную пару ключей. Дополнительные параметры конфигурации приведены в описании файла конфигурации SSH.

Теперь, когда у вас есть пара ключей SSH и настроенный файл конфигурации SSH, вы можете быстро и безопасно входить на виртуальную машину Linux. При выполнении следующей команды служба SSH находит и загружает все параметры из блока Host myvm в файле конфигурации SSH.

При первом входе на сервер с использованием ключа SSH команда запрашивает парольную фразу для этого файла ключа.

Дальнейшие действия

Следующий шаг — создание виртуальных машин Linux Azure с помощью нового открытого ключа SSH. Виртуальные машины Azure, созданные с использованием открытого ключа SSH в качестве данных для входа, защищены лучше, чем виртуальные машины, созданные с помощью метода по умолчанию, предусматривающего использование паролей.

Источник

Как настроить ключи SSH в Ubuntu 18.04

Published on July 19, 2018

Введение

SSH (secure shell, безопасная оболочка) представляет собой шифрованный протокол для администрирования и взаимодействия между серверами. Во время работы с сервером Ubuntu вы, скорее всего, будете проводить большую часть времени в вашем терминале, подключенном через SSH к вашему серверу.

В этом руководстве мы рассмотрим процесс настройки ключей SSH на вновь установленной Ubuntu. Ключи SSH представляют собой простой и безопасный способ входа на ваш сервер, и являются рекомендованным способом входа для всех пользователей.

Сперва создадим пару ключей на клиентской машине (обычно, это ваш компьютер):

После ввода этой команды вы должны увидеть следующий вывод:

Если ранее вы уже генерировали пару SSH ключей, вы можете увидеть следующий вывод:

Вы должны увидеть следующий вывод:

Здесь вы можете задать ключевую фразу (passphrase), что обычно рекомендуется сделать. Ключевая фраза добавляет дополнительный уровень безопасности для предотвращения входа на сервер неавторизованных пользователей. Для того, чтобы узнать больше о том, как это работает, рекомендуем ознакомиться с нашим руководством по настройке аутентификации по ключам SSH на серверах Linux.

Вы должны увидеть следующий вывод:

Теперь у вас есть пара из публичного и секретного ключей, которые вы можете использовать для аутентификации. Далее мы поместим публичный ключ на ваш сервер, для того, чтобы вы могли использовать аутентификацию по ключам SSH для входа.

Копирование ключа с использованием ssh-copy-id

Утилита ssh-copy-id доступна по умолчанию во многих операционных системах, поэтому, скорее всего, она доступна и на вашей локальной машине. Для использования этого метода копирования ключа вам необходимо иметь доступ к своему серверу по SSH с использованием пароля.

Для использования утилиты вам необходимо указать адрес удалённого хоста, к которому вы хотите подключиться, а также имя пользователя, имеющего доступ к хосту по SSH. Именно для аккаунта этого пользователя и будет скопирован ваш публичный ключ SSH.

Синтаксис команды выглядит следующим образом:

Вы можете увидеть вывод следующего вида:

Это означает, что ваш локальный компьютер не узнал удалённый хост. Это случается, когда вы пытаетесь подключиться к новому хосту в первый раз. Напечатайте “yes” и нажмите ENTER для продолжения.

/.ssh/id_rsa.pub в файл authorized_keys в поддиректории

/.ssh домашней директории вашего пользователя на удалённом хосте.

Вы должны увидеть следующий вывод:

Теперь ваш публичный ключ id_rsa.pub загружен на удалённый хост. Вы можете перейти к Шагу 3.

Копирование публичного ключа через SSH

Кроме этого, нам потребуется убедиться, что директория

/.ssh существует, а также имеет корректные права доступа для используемого нами аккаунта пользователя.

Далее мы сможем отправить содержимое файла ключа в файл authorized_keys внутри этой директории. Мы будем использовать синтаксис >> для добавление данных в конец файла вместо перезаписи содержимого файла. Это позволит нам добавить ключ без удаления ранее добавленных ключей.

Команда выглядит следующим образом:

Вы можете увидеть вывод следующего вида:

Это означает, что ваш локальный компьютер не узнал удалённый хост. Это случается, когда вы пытаетесь подключиться к новому хосту в первый раз. Напечатайте “yes” и нажмите ENTER для продолжения.

Далее вам будет предложено ввести пароль аккаунта пользователя на удалённом хосте:

После ввода пароля содержимое вашего файла публичного ключа id_rsa.pub будет скопировано в конец файла authorized_keys на удалённом хосте. Если всё прошло успешно, вы можете перейти к Шагу 3.

Копирование публичного ключа вручную

Если у вас нет доступа к вашей удалённой машине по SSH с использованием пароля, вам придётся проделать описанный выше процесс вручную.

Мы вручную добавим содержимое вашего файла id_rsa.pub в конец файла

/.ssh/authorized_keys на удалённой машине.

Для отображения содержимого файла id_rsa.pub введите следующую команду на вашей локальной машине:

Вы увидите содержимое файла ключа, выглядящее примерно так:

Зайдите на вашу удалённую машину любым доступным для вас способом.

Далее нам необходимо убедиться, что директория

/.ssh существует. Следующая команда создаст директорию, если её не существует или не сделает ничего, если директория была создана ранее:

В команде выше замените строка_публичного_ключа на вывод команды cat

Далее убедимся, что директория

/.ssh и файл authorized_keys имеют подходящие права доступа:

Эта команда удаляет права доступа для “group” и “other” для директории

Если вы используете аккаунт root для настройки ключей для аккаунта пользователя, важно, чтобы директория

/.ssh принадлежала этому самому пользователю, а не пользователю root :

Теперь мы можем попробовать аутентифицироваться на нашем Ubuntu сервере без пароля.

Если вы успешно проделали описанные выше шаги по переносу публичного ключа, вы должны быть способны зайти на свой удалённый хост без использования пароля.

Процесс входа выглядит так же:

Если вы заходите на удалённый хост по SSH в первый раз, вы можете увидеть вывод следующего вида:

Это означает, что ваш локальный компьютер не узнал удалённый хост. Напечатайте “yes” и нажмите ENTER для продолжения.

Если при создании пары ключей вы не задали ключевую фразу (passphrase), вы будете залогинены автоматически. Если вы задали ключевую фразу, вам будет предложено её ввести (обратите внимание, что вводимые символы не будут отображаться на экране в целях безопасности). После аутентификации откроется новая сессия оболочки (shell session) на удалённом хосте от имени используемого вами удалённого аккаунта пользователя.

Если аутентификация по ключу прошла успешно, рекомендуем ознакомиться с тем, как далее повысить безопасность вашего сервера путём отключения входа по паролю.

Если вам удалось войти в ваш удалённый аккаунт на удалённом хосте по SSH без ввода пароля, вы успешно настроили аутентификацию по ключу SSH для вашего аккаунта. Однако возможность входить на сервер с использованием пароля всё есть активна, что означает, что ваш сервер уязвим для атак с перебором пароля (brute-force attacks).

Перед тем как следовать дальнейшим инструкциям, убедитесь, что вы настроили аутентификацию по ключу SSH для вашего пользователя root или для пользователя с привилегиями sudo на вашем сервере. После завершения описанных далее процедур вход по паролю станет недоступен, поэтому очень важно убедиться, что у вас остаётся доступ к вашему серверу.

В качестве меры предосторожности откройте новое окно терминала и проверьте, что соединение по SSH работает корректно, перед тем, как закрывать текущую сессию:

После проверки работоспособности SSH соединения, вы можете закрыть все открытые сессии с сервером.

Теперь демон SSH на вашем сервере с Ubuntu работает только с ключами SSH. Аутентификация по паролю полностью отключена.

Заключение

Теперь на вашем сервере настроен вход по ключам SSH, позволяющий заходить на сервер без использования пароля.

Если вы хотите узнать больше о том, как работать с SSH, рекомендуем наше руководство по работе с SSH.

Источник

Как создать ключ для авторизации по SSH и добавить его на сервер?

SSH-ключи представляют собой пару — закрытый и открытый ключ. Закрытый должен храниться в закрытом доступе у клиента, открытый отправляется на сервер и размещается в файле authorized_keys.

Создание SSH-ключей в Linux на примере CentOS

На клиентской стороне должен быть установлен пакет ssh (openssh). На серверах FirstVDS с шаблонами по умолчанию необходимое ПО уже установлено.

На клиентском компьютере в командной строке выполните команду генерации ключей:

Как сгенерировать ssh keys linux. ssh key 1. Как сгенерировать ssh keys linux фото. Как сгенерировать ssh keys linux-ssh key 1. картинка Как сгенерировать ssh keys linux. картинка ssh key 1.

Пароль (passphrase) используется для ограничения доступа к закрытому ключу. Пароль усложнит использование ключа третьими лицами в случае утраты. Если не хотите использовать секретную фразу, нажмите Enter без заполнения строки.

Успешно сгенерировав пару ключей, вы увидите уведомление:

Как сгенерировать ssh keys linux. ssh key 2. Как сгенерировать ssh keys linux фото. Как сгенерировать ssh keys linux-ssh key 2. картинка Как сгенерировать ssh keys linux. картинка ssh key 2.

Как сгенерировать ssh keys linux. ssh key 3. Как сгенерировать ssh keys linux фото. Как сгенерировать ssh keys linux-ssh key 3. картинка Как сгенерировать ssh keys linux. картинка ssh key 3.

Как сгенерировать ssh keys linux. ssh key 4. Как сгенерировать ssh keys linux фото. Как сгенерировать ssh keys linux-ssh key 4. картинка Как сгенерировать ssh keys linux. картинка ssh key 4.

Как сгенерировать ssh keys linux. ssh key 5. Как сгенерировать ssh keys linux фото. Как сгенерировать ssh keys linux-ssh key 5. картинка Как сгенерировать ssh keys linux. картинка ssh key 5.

Теперь можно отключить на сервере аутентификацию по паролю и использовать только SSH-ключи.

Создание SSH-ключей на Windows с PuTTYgen

Как сгенерировать ssh keys linux. ssh key 6. Как сгенерировать ssh keys linux фото. Как сгенерировать ssh keys linux-ssh key 6. картинка Как сгенерировать ssh keys linux. картинка ssh key 6.

Как сгенерировать ssh keys linux. ssh key 7. Как сгенерировать ssh keys linux фото. Как сгенерировать ssh keys linux-ssh key 7. картинка Как сгенерировать ssh keys linux. картинка ssh key 7.

В процессе генерации ключей несколько раз произвольно проведите мышкой по экрану приложения для создания случайных величин, используемых для ключей.

Как сгенерировать ssh keys linux. ssh key 8. Как сгенерировать ssh keys linux фото. Как сгенерировать ssh keys linux-ssh key 8. картинка Как сгенерировать ssh keys linux. картинка ssh key 8.

Как сгенерировать ssh keys linux. ssh key 9. Как сгенерировать ssh keys linux фото. Как сгенерировать ssh keys linux-ssh key 9. картинка Как сгенерировать ssh keys linux. картинка ssh key 9.

Как сгенерировать ssh keys linux. ssh key 10. Как сгенерировать ssh keys linux фото. Как сгенерировать ssh keys linux-ssh key 10. картинка Как сгенерировать ssh keys linux. картинка ssh key 10.

Как сгенерировать ssh keys linux. ssh key 11. Как сгенерировать ssh keys linux фото. Как сгенерировать ssh keys linux-ssh key 11. картинка Как сгенерировать ssh keys linux. картинка ssh key 11.

Откройте файл authorized_keys через WinSCP и файл, в который вы сохранили открытый ключ (public), на локальном компьютере текстовым редактором. Скопируйте значение ключа, сохраните и закройте файл в WinSCP.

Как сгенерировать ssh keys linux. ssh key 12. Как сгенерировать ssh keys linux фото. Как сгенерировать ssh keys linux-ssh key 12. картинка Как сгенерировать ssh keys linux. картинка ssh key 12.

При запуске PuTTY укажите путь к закрытому ключу на локальном компьютере. Для этого во вкладке Connections → Auth выберите необходимый путь.

Как сгенерировать ssh keys linux. ssh key 15. Как сгенерировать ssh keys linux фото. Как сгенерировать ssh keys linux-ssh key 15. картинка Как сгенерировать ssh keys linux. картинка ssh key 15.

Теперь можно отключить на сервере аутентификацию по паролю и использовать только SSH-ключи.

Отключение аутентификации по паролю

Подключитесь к серверу по SSH, используя пароль, и откройте файл sshd_config для редактирования.

Как сгенерировать ssh keys linux. ssh key 13. Как сгенерировать ssh keys linux фото. Как сгенерировать ssh keys linux-ssh key 13. картинка Как сгенерировать ssh keys linux. картинка ssh key 13.

Перезапустите службу sshd.

Как сгенерировать ssh keys linux. ssh key 14. Как сгенерировать ssh keys linux фото. Как сгенерировать ssh keys linux-ssh key 14. картинка Как сгенерировать ssh keys linux. картинка ssh key 14.

Как сгенерировать ssh keys linux. ssh key 16. Как сгенерировать ssh keys linux фото. Как сгенерировать ssh keys linux-ssh key 16. картинка Как сгенерировать ssh keys linux. картинка ssh key 16.

Источник

Настройка пары ключей ssh на linux сервере

2831 просмотров 1 2020-12-14

Для повышения безопасности ssh-соединения рекомендуется отказаться от логина по паролю, и подключаться к удалённому серверу с помощью ключей. Это действие аналогично отпиранию замка с помощью ключа. Логин по паролю в конце-концов может быть взломан методом перебора, либо утечкой пароля. Тогда как логин по ключам достаточно стоек к взлому.

Здесь будет рассказано, как создать пару ключей на клиентской машине, работающей под ОС Ubuntu 18.04. Однако, данное руководство будет актуально и на других версиях linux, с некоторыми оговорками.

1. Создание пары ключей RSA

Для того, чтобы заходить на сервер по ключу, необходимо сгенерировать пару ключей: открытую и закрытую. Открытый (или публичный) ключ мы помещаем на сервер, а закрытый хранится у нас. По этой паре мы можем осуществлять логин на сервер. На данный сервер сможет заходить тот, у кого есть вторая часть ключа.

Сгенерируем пару ключей.

После выполнения этой команды, вы получите следующий вывод:

Если ранее вы генерировали пару ssh-ключей, то вероятнее всего вы получите следующий вывод:

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

После успешной операции, вы увидите следующий вывод:

Таким образом вы можете задать ключевую фразу, это рекомендуется сделать. Эта фраза добавить ещё дин уровень безопасности, для предотвращения входа на сервер неавторизированных пользователей.

После этого, вы увидите следующий вывод:

Это говорит о том, что у вас появилась пара из открытого и закрытого ключа, которые могут быть использованы для логина на удалённый сервер. Далее необходимо скопировать открытый ключ на удалённый сервер.

Копирование открытого ключа с помощью программы ssh-copy-id

Программа ssh-copy-id присутствует во многих дистрибутивах linux, поэтому наиболее вероятно что этот вариант вам подойдёт по умолчанию.

Для копирования открытой части ключа, достаточно произвести копирования ключа следующей командой:

Если вы ни разу не заходили на сервер, то вероятнее всего вы получите следующее предупреждение:

Это означает, что ваша локальная машина не знает данный хост. Достаточно ввести “yes” и нажать “Enter”.

После чего программа будет искать в директории локального пользователя ключ id_rsa.pub (открытый), который мы создали ранее. Если утилита найдёт этот файл, то программа копирования запросит пароль для входа на удалённый хост.

Введите пароль, обратите внимание, что ввод пароля не отображается по соображениям безопасности. И нажимте ввод. После этого программа скопирует содержимое ключа из

/.ssh/id_rsa.pub в файл authorized_keys в поддиректории

/.ssh домашней директории вашего пользователя на удалённом хосте. В результате вы увидите следующее сообщение:

Таким образом ключ загружен на удалённый сервер.

Копирование ключа вручную

Иногда бывают случаи. когда отсутствует утилита ssh-copy-id (особенно на старых операционных системах). Поэтому можно скопировать ключ вручную. Один из вариантов – это передать ключ по ssh. Для этого мы будем считывать ключ, с помощью команды cat, затем передавать его через pipe команде ssh, которая создаст ключ и разместит его в файле.

Если это подключение будет в первый раз, нужно будет точно так же согласиться с данным соединением и затем ввести пароль.

Аналогично, можно все эти действия проделать вручную. Например, если вы не имеете доступ по ssh к удалённой машине. Для начала надо вывести содержимое открытого ключа на вашей локальной машине.

Вы получите содержимое файла ключа, которое будет выглядеть примерно так:

После чего на удалённой машине необходимо создать папку

/.ssh. Команда ниже создаст директорию, если её не существовало.

Теперь можем дописать публичный ключ нашей локальной машины на удалённую в конец файла authorized_keys :

Обратите внимание, что надо заменить “строка_публичного_ключа” на вывод команды cat

После чего, необходимо убедиться, что директория

/.ssh и файл authorized_keys имеют соответствующие права доступа:

Если вы используете акаунт root, для настройки ключей. То не забудьте поменять права пользователя, чтобы директория и файлы ключей принадлежали пользователю, а не root. Делается следующей командой:

Где, user следует заменить на имя вашего пользователя.

Подключение к удалённому серверу и отключение логина по паролю

После всех процедур вы можете попробовать подключиться к удалённому серверу.

Если при создании пары ключей вы не задали ключевую фразу (passphrase), вы будете залогинены автоматически. Если вы задали ключевую фразу, вам будет предложено её ввести. Это означает, что вы всё сделали верно. Теперь можно отключить логин по паролю. Для этого отредактируем файл sshd_config:

Всё, теперь можете открыть новое окно терминала, и проверить соединение по ssh по вашему логину. Всё должно работать без пароля.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *