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

я путаю себя на какой-то аутентификации на основе ключа 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 используется закрытый ключ пользователя?

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

23
задан Tim
28.01.2023 13:12 Количество просмотров материала 2614
Распечатать страницу

3 ответа

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

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

2
отвечен CodeGnome 2023-01-29 21:00

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

1
отвечен chx 2023-01-29 23:17

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

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

let's you do (опять на канале A):

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



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

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

0
отвечен 2023-01-30 01:34

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх