Документ взят из кэша поисковой машины. Адрес оригинального документа : http://wiki.cs.msu.ru/Main/SShKeys?cover=print;rev=1
Дата изменения: Unknown
Дата индексирования: Sun Apr 10 09:59:02 2016
Кодировка: koi8-r
SShKeys < Main < Foswiki

Работа с ssh-ключами

Что такое ssh-ключ

Как следует из названия — это ключ для ssh, т.е. используется программой ssh (или другим ssh-клиентом, в дальнейшем так и будем говорить: ssh-клиент) для авторизации на удаленном сервере через демон/сервис sshd (будем называть этот сервер ssh-сервером)

Если вы попали на эту страницу, значит в дальнейшем Вы таким способом будете (или от Вас требуют) авторизоваться (т.е. доказать, что это именно Вы) на каком-то unix-подобном сервере.

Это может быть нужно:

ALERT! Важно то, что для всего этого достаточно одного ключа, не требуется каждый раз создавать новый ключ.

Еще одним важным свойством является то, что ключ состоит из двух частей:
  • публичная часть ключа (или публичный ключ)
  • приватная/закрытая часть ключа (или закрытый ключ)
Устройство их аналогично устройству замка (что надо открыть) и железного ключа (то, чем открывают).

Публичная часть — это замок, а приватная часть — это Ваш личный ключ. Именно публичная часть используется сервером для Вашей авторизации (сможете ли Вы открыть ключом шкатулку или нет).

ALERT! Не компрометируйте свою закрытую часть ключа, что может произойти при:
  • передаче другому лицу (по аналогии: с железного ключа можно снять восковой отпечаток и отдать ключ обратно, копий ключа уже будет сколько угодно)
  • посылке по открытым каналам (аналогично, копию снять ничего не стоит)
  • и других обстоятельствах, когда доступ к закрытому ключу могут получить третьи лица

Чем это лучше использования пароля

Если Вы привыкли использовать системы с паролем, у Вас может возникнуть вопрос, почему администраторы сервера рекомендуют/заставляют Вас пользоваться ssh-ключами. Для этого я и написал этот раздел.

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

В отличие от этого, для авторизации по ключу требуется некоторая подготовка:
  • Пользователь создает (если ключей еще нет) открытый и закрытый ключи
  • Открытый/публичный ключ копируется на удаленный ssh-сервер и кладется в специальный файл в директории того пользователя, в кого и надо залогиниться. Скорее всего будет использоваться файл ~/.ssh/authorized_keys.

И в дальнейшем при авторизации:
  • ssh-клиент отправляет ssh-серверу свой публичный ключ (поэтому публичный ключ у Вас тоже должен быть).
  • Сервер проверяет файл ~/.ssh/authorized_keys на наличие присланного ключа, если он в файле найден, ssh-сервер отправляет клиенту сообщение, зашифрованное публичным ключом (шкатулку закрытую на замок)
  • Клиент должен расшифровать сообщение с помощью своего приватного ключа (открыть шкатулку), если приватный ключ защищен паролем, ssh-клиент попросит пользователя ввести пароль, чтобы сначала расшифровать сам ключ.
  • Если сообщение расшифровано (обратно прислана открытая шкатулка), то правильность закрытого и открытого ключей считается подтвержденной и пользователю предоставляется доступ на сервер.

Как видно, преимущество ключей в том, что:
  • для подбора надо не только подобрать очень большой открытый ключ (скажем при длине ключа в 2048 бит он сложнее пароля из 8 символов примерно в 10^500 раз), но и подобрать закрытую пару к подобранному открытому ключу (тоже очень сложная и дорогая задача)
  • несколько пользователей могут логиниться под одним логином на удаленном сервере не обмениваясь общими секретами, иными словами:
    • если требуется для работы групповой логин, то имея пользователей с разными ключами всегда можно определить тот набор из пользователей, которые смогут логиниться в данный момент времени под этим групповым логином

Как установить ssh-клиент

Если у Вас:

Кстати PuTTY есть и под Unix-системы.

Как получить/создать ssh-ключ

  1. Установить ssh-клиент (если еще не установили). По поводу установки — смотри предыдущий раздел.
  2. Далее — зависимости от предпочтений:

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

Иногда пользователь хочет использовать несколько ключей, что может быть вызвано:
  • так сложилось
  • разграничением ключей по серверам (скажем, на особо секретные сервера можно заходить по ключу с паролем, а на менее секретные — безпарольным ключом)
  • тем, что уже имеющийся ключ не подходит серверу (например BlueGene не принимает в данный момент ключи EDSA) и надо создать другой ключ.
Ничего страшного!

Если использовать программу ssh: Если использовать программу putty:

This topic: Main > WebHome > SShKeys
Topic revision: revision 1
 
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback