4

Я путаюсь с аутентификацией на основе ключей ssh.

Допустим, у меня есть:

Host A:
user tom
  .ssh
     tom_private_key
     tom_public_key



Host B:
user shared
   .ssh
     shared_private_key
     shared_public_key

Я хочу SSH с хоста A, как пользователь shared , на хост B.

Придется ли мне копировать закрытый ключ shared пользователя в каталог ssh, а затем использовать параметр -I или настроить конфигурационный файл SSH, чтобы при использовании ssh на этот хост в качестве shared shared использовался закрытый ключ общего пользователя?

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

3 ответа3

2

Вам нужно заполнить файл ~/.ssh/authorized_keys на хосте B открытыми ключами всех пользователей, которым вы хотите иметь доступ к общей учетной записи. Только клиенту нужен личный ключ пользователя. Сервер должен знать только открытые ключи, которым разрешено подключаться к определенной учетной записи.

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

1

Если вы используете SSH со своего ноутбука на хосте A, вы можете хранить закрытый ключ локально и использовать переадресацию агента (ssh -A host_a).

0

Делаем это на хосте A:

cat ~tom/.ssh/tom_public_key | ssh shared@host-b 'cat >> .ssh/authorized_keys'

Давайте сделаем (снова на хосте A):

ssh -i ~tom/.ssh/tom_private_key shared@host-b


В первой строке вы копируете открытый ключ Тома с хоста A (host-a:~tom/.ssh/tom_public_key) на хост B в файл author_keys общего пользователя (host-b:~shared/.ssh/authorized_keys), Затем вы можете подключиться (вторая линия) от А до Б без пароля:

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .