Инструменты пользователя

Инструменты сайта


wiki:kompjuternye_seti:protokoly:ssh:podkljuchenie_k_serveru_s_ispolzovaniem_ssh-kljucha

Подключение к серверу с использованием ssh-ключа

На сервере (на примере ОС Debian 9)

Необходимо включить в конфиге ssh-сервера (/etc/ssh/sshd_config):

для ssh версии протокола 1 (устаревший протокол, не рекомендуется)

RSAAuthentication yes

для ssh версии протокола 2

PubkeyAuthentication yes

По умолчанию публичный ключ(и) пользователя хранятся в файле «.ssh/authorized_keys» домашнего каталога. Изменить место поиска можно с помощью ключа AuthorizedKeysFile. Можно указать более одного места, разделенного пробелами.

# AuthorizedKeysFile    .ssh/authorized_keys

Можно использовать: %h - будет заменен на домашний каталог пользователя, %u - будет заменен на имя пользователя

Права на каталог и файл:

drwx------ user_name  user_name .ssh
-rw------- user_name user_name authorized_keys

Файл «authorized_keys» является текстовым файлом. Записать публичный ключ в этот файл можно просто в редакторе (например, nano). Есть еще несколько вариантов как добавить ключ на сервер, например через ssh-copy-id. Допускается хранить в нем несколько публичных ключей. Каждый публичный ключ на отдельной строчке.

Смысл этого в примере ниже.
Путь есть «прописанный» на сервере пользователь с именем логина qwerty. Т.е. для пользователя с именем qwerty есть учетная запись (с паролем) на сервере. И есть два «внешних» пользователя, user1 и user2, не имеющих своих учетных записей на сервере. Эти пользователи НЕ знают пароль пользователя qwerty! Если для пользователя qwerty в файле authorized_keys будут публичные ключи пользователей user1 и user2, то оба пользователя могут подключиться к серверу со своими ключами каждый примерно такой командой:

$ ssh qwerty@ip_server

Оба пользователя, при подключении, будут работать на сервере от имени пользователя qwerty. Но надо заметить, что для каждого пользователя, при подключении к серверу, сервер будет перебирать приватные ключи из «authorized_keys» пока не произойдет «совпадение» с публичным ключем подключаемого пользователя.

На стороне клиента

ОС Windows (PuTTY)

Для авторизации по ключу в PuTTY надо указать расположение ключа в меню SSH — Auth. Если ключ сгенерирован в Linux, нужно перевести его в формат ppk с помощью утилиты PuTTYgen.

ОС Linux

Самый простой вариант подключения командой:

$ ssh youruser@remote.server.host

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

Сделать это можно несколькими способами:

  1. указать в самой команде через ключ -i:
    $ ssh -i <path_to_private_key> youruser@remote.server.host
  2. добавить необходимые настройки в «~/.ssh/config» (в нем много чего можно сделать)
  3. использовать ssh-agent через keychain

Если приватный ключ пользователя при его генерации был защищен секретной фразой (паролем), то придется вводить секретную фразу при каждом подключении к удаленному серверу по ключу. Это несколько не удобно. На этот случай, существуют специальные программы ssh-agent и ssh-add, в общем-то вторая является дополнением первой.

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

wiki/kompjuternye_seti/protokoly/ssh/podkljuchenie_k_serveru_s_ispolzovaniem_ssh-kljucha.txt · Последнее изменение: 2018-11-14 18:55 — nik

Если не указано иное, содержимое этой вики предоставляется на условиях следующей лицензии: GNU Free Documentation License 1.3
GNU Free Documentation License 1.3 Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki