LINUX.ORG.RU

Принцип авторизации по ключу в SSH

 , ,


0

3

Вот я настроил авторизацию по ключу в ssh. В /etc/ssh/ у меня лежат четыре файла: ssh_host_ed25519_key, ssh_host_ed25519_key.pub, ssh_host_rsa_key, ssh_host_rsa_key.pub. Кроме того, от своего пользователя и от root я выполнил команды ssh-keygen и получил по две пары ключей в каталоге ~/.ssh соответствующих пользователей. Теперь я хочу подключиться к компьютеру с помощью ConnectBot с Android, но все инструкции, которые я на хожу, говорят о том, что мне надо в самом ConnectBot сгенерировать ключи и передать их на компьютер. Видимо, я как-то неправильно понимаю суть авторизации по ключам, потому что мне казалось, что это сгенерированные на компе ключи я должен передать на то устройство, с которого хочу подключаться. В связи с этим возникают несколько вопросов:

  • Как работает авторизация по ключам?
  • Зачем нужны те ключи, которые в /etc/ssh и те ключи, которые в ~/.ssh?

Заранее большое спасибо.

★★

1) ты можешь один ключ использовать на всех клиентах(так ка ты и хотел), но так-же можешь на каждом клиенте сгенерировать свой ключ, и добавить на сервере их в «доверительные». Лично я предпочитаю второе.
2)/etc/ssh - глобальные настройки. ~/.ssh - настройки конкретного пользователя.

Deleted
()
Ответ на: комментарий от Deleted

1.) Если я тоже предпочту второй метод, то мне, по сути, ключи в ~/.ssh не нужны? И ещё - при создании этих ключей я вводил некий пароль. Он может потребоваться клиенту для использования этих ключей? Меня просто смутило, что при попытке импорта ключей в ConnectBot, он их не осиливает.

2.) Но они, вроде, имеют разный смысл, нет?

Norong ★★
() автор топика
Ответ на: комментарий от Deleted

Нет, всё не так. Ключи в /etc/ssh используются для того, чтобы клиент мог проверить подлинность сервера (т. е. что нет MITM по дороге); ключи в ~/.ssh используются для аутентификации клиента на сервере.

Norong: на сервере нужны ключи в /etc/ssh (и только они), на клиенте нужны ключи в ~/.ssh (и только они). Клиент добавляет публичный ключ сервера в ~/.ssh/known_hosts, сервер добавляет публичный ключ клиента в ~user/.ssh/authorized_keys (где ~user — это домашний каталог пользователя на сервере, соответствующего нашему клиенту).

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 5)
Ответ на: комментарий от Norong

ключи в ~/.ssh не нужны?

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

UPD. И да, это относится к клиенту.

2) что ты подразумеваешь под «разный смысл»?

Deleted
()
Последнее исправление: nepank (всего исправлений: 1)
Ответ на: комментарий от intelfx

Большое спасибо, принцип понял!

Последний вопрос: в итоге у меня на компьютере имеются ключи сервера в /etc/ssh (с суффиксом .pub и без), ключи клиента в ~/.ssh (для каждого пользователя свои, тоже с суффиксом .pub и без), файл authorized_keys, где указан ключ, сгенерированный мною на телефоне, а так же на телефоне фигурирует этот самый ключ клиента. Что из всего этого мне во что бы то ни стало надо держать в секрете чтобы не рухнула моя безопасность?

Norong ★★
() автор топика
Ответ на: комментарий от Deleted

Но написал ты совершенно не это. Возникает ощущение, что ключи в ~/.ssh и в /etc/ssh — взаимоисключающие (когда на самом деле они взаимодополняющие).

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 1)
Ответ на: комментарий от Norong

Для каждого файла с расширением .pub (публичного ключа) есть соответствующий ему файл без этого расширения (приватный ключ). Вот их нужно держать в секрете. Остальное — не нужно.

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.