Linux ssh key access

Авторизация по SSH-ключу

Использование SSH-ключа для подключения к серверу позволяет сделать работу более безопасной (снизится вероятность взлома учетной записи) и более удобной (не будет необходимости при каждом соединении вводить пароль).

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

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

Linux, MacOS, Windows 10

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

Эта инструкция подойдет для ОС Linux, MacOS, а также для версий Windows 10 начиная с 1809 — в них доступен встроенный SSH-клиент. Если у вас более ранняя версия Windows, воспользуйтесь инструкцией из пункта Старые версии Windows (без OpenSSH).

Запустите терминал или Windows PowerShell на вашем компьютере и выполните команду:

Вы увидите примерно следующее сообщение:

Нажмите Enter — ключ будет сохранен в указанную директорию по умолчанию.

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

Процедура создания ключей завершена, ключи сохранены в директории

/.ssh/ в файлах id_rsa и id_rsa.pub. Теперь их необходимо скопировать на сервер.

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

Выполните в терминале следующую команду, указав вместо user имя пользователя, созданного на сервере, а вместо server — IP-адрес вашего сервера:

В результате содержимое файла с публичным ключом id_rsa.pub будет скопировано в файл

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

Старые версии Windows (без OpenSSH)

Если вы используете версию Windows без OpenSSH, вам потребуется специальная программа — PuTTYgen. Вы можете скачать дистрибутив puttygen.exe с официального сайта PuTTY.

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

  1. Запустите программу, в открывшемся окне выберите «Type of key — SSH-2 RSA и нажмите «Generate».
  2. Пока создается ключ, водите мышью в хаотичном порядке в пространстве под строкой загрузки для генерации случайных значений.
  3. После того, как ключ будет создан, в окне программы вы сможете задать «Key passphrase» (кодовую фразу) для ключа. Это необязательно, вы можете оставить строку пустой. Если вы решите задать кодовую фразу, обратите внимание, что ее потребуется вводить при каждой авторизации по ключу.
  4. Далее сохраните созданные ключи, нажав на кнопки «Save public key» и «Save private key«, например, под именами id_rsa.pub и mykey.ppk. Также скопируйте и сохраните в любом текстовом файле содержимое окна «Public key for pasting…» — оно потребуется при копировании созданного ключа на сервер.

На этом процедура создания ключей завершена.

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

В процессе копирования ключей вам потребуется утилита pageant. Вы можете скачать дистрибутив pageant.exe с официального сайта PuTTY.

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

Читайте также:  Windows 10 сам перезагружается когда хочет

Откройте созданный файл с помощью текстового редактора:

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

Отключение доступа по паролю

Для того, чтобы доступ к серверу мог осуществляться только по ключу, необходимо запретить авторизацию по паролю. Для этого требуется внести правки в файл /etc/ssh/sshd_config.

Откройте файл командой:

Сохраните изменения, после чего перезапустите службу SSH:

Источник

Авторизация SSH по ключу в Linux

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

Генерация ключа в Linux

Генерация ключа запускается следующей командой:

-t rsa — тип шифрования;
-b 2048 — длина ключа;

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

очевидно, ЛОГИН необходимо заменить на имя нужного пользователя.

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

При генерации ключа вам будет задано несколько вопросов:

Enter file in which to save the key (/home/user/.ssh/id_rsa) — если нет необходимости сохранять в другое место сгенерированные файлы ключей, то оставляем без ответа;
Enter passphrase (empty for no passphrase): — если хотим защитить наш файл ключа паролем (пароль именно на клиентский ключ!), если же хотим сделать файл ключа без пароля, то оставляем без ответа. ВАЖНО — ВОССТАНОВИТЬ ЗАБЫТЫЙ ПАРОЛЬ НЕВОЗМОЖНО;
Enter same passphrase again: — повторяем пароль;

После конца генерации, появляется два ключа:

Your identification has been saved in /home/user/.ssh/id_rsa.
Your public key has been saved in /home/user/.ssh/id_rsa.pub.

id_rsa — приватный ключ пользователя;
id_rsa.pub — публичный ключ сервера;

В файле /etc/ssh/sshd_config проверяем:

Разрешаем использование RSA ключей:

Разрешаем авторизацию при помощи ключей:

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

Потом идем в директорию пользователя:

и записываем авторизованные ключи

Копируем себе файл id_rsa, и удаляем его на сервере. Так же удаляем и id_rsa.pub.

Авторизация из Windows

Теперь для авторизации в Windows с помощью ключа, скопированного ранее с сервера, нужно воспользоваться утилитой PuTTYGen (идет в комплекте с PuTTY), которая сконвертирует ключ в понятный PuTTY формат.

Conversion — Import key

При желании можем написать комментарий в поле «Key comment«, а так же добавить пароль, написав его в «Key passphrase«.
Далее жмем «Save private key«.

Для авторизации по ключу, в PuTTY/KiTTY нужно проделать следующее:

Connection — data — autologin username = имя пользователя

Connection — data — ssh — auth — указываем файл ключа

Если соединение с ssh сервером проходит успешно, то следует отключить возможность захода с помощью авторизации по логину/паролю. В конфиге /etc/ssh/sshd_config меняем значение параметров «PasswordAuthentication» и «PermitEmptyPasswords» на «no«

Источник

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

SSH-ключи используются для идентификации клиента при подключении к серверу по SSH-протоколу . Используйте этот способ вместо аутентификации по паролю.

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

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

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

Читайте также:  Астра линукс вход неудачен сброс

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

Введите путь файла, в который будут помещены ключи. Каталог по умолчанию указан в скобках, в примере /домашний_каталог/.ssh/id_rsa . Если хотите оставить расположение по умолчанию, нажмите Enter .

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

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

Открытый ключ хранится в файле /домашний_каталог/.ssh/id_rsa.pub , закрытый — /домашний_каталог/.ssh/id_rsa .

Скопируйте открытый ключ на сервер в файл /домашний_каталог/.ssh/authorized_keys . Одной строкой:

Или откройте этот файл на сервере редактором vi и вставьте строку с открытым ключом после ssh-rsa .

Ещё один способ скопировать ключ в authorized_keys — команда echo , которая помещает строку в конец файла.

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

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

Если вы используете ОС Windows, то подключиться по SSH к вашему (Linux) серверу можно через PuTTY или OpenSSH . Генерация ключей в этом случае выполняется также при помощи этих программ. В примере мы используем клиент PuTTY.

Запустите приложение PuTTYgen , которое устанавливается вместе с PuTTY.

Выберите тип ключа SSH2-RSA и нажмите Generate .

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

После завершения создания ключей открытый ключ выводится на экран, закрытый хранится в памяти приложения. Чтобы сохранить эти ключи нажмите Save public key и Save private key . Укажите расположение файлов с ключами.

При сохранении закрытого ключа, если не заполнено поле Key passphrase , появится запрос «Хотите ли вы сохранить ключ без секретной фразы?»

Теперь открытый ключ необходимо скопировать на сервер в файл authorized_keys . Используйте WinSCP или другой клиент для работы с файлами на удалённом Linux-сервере. Вы можете скопировать файл с открытым ключом целиком на сервер, чтоб его копия хранилась в папке .ssh

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

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

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

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

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

Убедитесь, что указан правильный путь к открытым ключам SSH, поставьте значение параметра PasswordAuthentication no .

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

Подключитесь к серверу по SSH без использования пароля. Например, запустите PuTTY, проверьте, что во вкладке Connections -> Auth содержится путь к закрытому ключу и откройте подключение.

В случае успешной аутентификации по SSH-ключу вы получите доступ к командной строке сервера и сообщение вида Authenticating with public key «rsa-key-20170510» , где rsa-key-20170510 — имя применённого закрытого ключа, указанное вами в файле authorized_keys .

Источник

FAQ → Вход ssh по ключу ( Linux/Unix )

Авторизация с использованием ключей — более удобный способ выполнять вход в систему, вы можете раскидать свой ключ на множество систем и выполнять вход на них без использования пароля, когда у вас много машин это становится невероятно удобным. Для тестов нам необходимо иметь минимум 2 машины, одна рабочая, на которой мы будем гереировать ключи и выполнять вход на удаленные машины, а вторая целевая, на которую будет выполняться вход в систему по ssh
Для того чтобы выполнить ssh авторизацию по ключу, необходимо выполнить 3 действия:
1) Сгенерировать ssh ключ закрытый ключ и сертификат ( открытый ключ )
2) Разрешить на удаленной машине выход по ключу
3) Положить на целевую машину открытый ключ

Читайте также:  Max locked memory linux

Для тестов используется имя пользователя: user

Создаем директорию для ключей
Генерируем ключи SSH

для этого существует утилита ssh-keygen

Где:
ssh-keygen -утилита для генерации ключа
-t — ключ утилиты отвечающий за тип генерируемого ключа
rsa -тип ключа бывает rsa/dsa
-b -ключ через который указывается длина ключа в bit
1024 — длина ключа, для тестов хватит и 1024 для большей безопасности указываем 2048, более длинный ключ вызывает большою нагрузку на процессор шифровака/дешифровка данных
-f -параметр указывает куда положить ключ
/home/user/.ssh/id_dsa -путь куда положить ключ

В результате в директории /home/user/.ssh/ у нас появилось 2 файла:

Файл с расширением .pub это открытый ключ, его мы забрасываем на сервер к которому будем подключаться по ssh,
файл id_rsa это закрытый ключ, его не сообщаете никому, по нему вы будете осуществлять вход.
Во время генерации ключа система предложит ввести пароль, но тогда придется вводить его каждый раз при входе на сервер, так повышается безопасность, но снижается удобство, это уже решать вам, для тестов, пароль не указываем нажимаем 2 раза enter

Настраиваем целевую машину

Настраиваем машину на которую будем выполнять вход по ключу, тут необходимо выполнить 3 действия:
1) Настроить SSH сервер
2) Создать директорию для ключей в домашней директории пользователя
3) Положить на машину открытый ключ

1 — Настраиваем SSH сервер

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

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

2- Создаем директорию для ключей

в домашней директории пользователя создаем директорию .ssh

Директория должна принадлежать пользователю который будет выполнять вход в систему по ssh

3 — Добавляем на целевую машину открытый ключ

В созданной директории .ssh нам необходимо создать файл с отрытым ключом

Нам необходимо записать в него содержимое файла из id_rsa.pub который у нас получился при генерации ключей на рабочей машине
Права доступа к файлу authorized_keys должны позволять читать содержимое пользователю user

Проверяем работу

На рабочей машине, если мы работаем под именем user, пытаемся подключиться к целевой машине, набрав команду в консоли:

Должно произойти подключение
Если на рабочей системе вы работаете под пользователем имя которого на целевой машине отличается от имени пользователя на рабочей машине, например:
Вы работаете под пользователем superuser, но на целевой машине вы работаете под пользователем user, тогда команда подключения будет иметь вид:

Ну а если на целевой машине ssh сервер работает не на стандартном порту 22, а для примера, 9999, то команда подключения принимает вид:

На этом все!
Возникли вопросы, прошу в комментарии, нашли ошибку, то пишите в чилку или на email, его можно найти в нижнем левом углу страницы.

Источник

Оцените статью