Аутентификация по ключу 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
в Хост Б.
Должен ли я скопировать shared
закрытый ключ пользователя к моему каталогу ssh, а затем используйте параметр -I или настройте файл конфигурации SSH, чтобы при подключении ssh к этому хосту в качестве пользователя shared
, shared
закрытый ключ пользователя используется?
Там нет способа сделать это без копирования секретного ключа есть? Я так не думаю, но я, очевидно, хотел бы избежать копирования личных ключей, если смогу.
3 ответа
Вам нужно заполнить ~/.ssh/authorized_keys
файл на хосте B с открытыми ключами всех пользователей, которым вы хотите иметь доступ к общей учетной записи. Только клиенту нужен личный ключ пользователя. Сервер должен знать только открытые ключи, которым разрешено подключаться к определенной учетной записи.
Пользователям редко требуется обмениваться личными ключами (хорошо известный закрытый ключ Vagrant является иллюстративным исключением) или размещать закрытые ключи пользователей на сервере. Каждый закрытый ключ должен быть уникальным для каждого пользователя и должен оставаться на его клиентском компьютере. Даже если вы игнорируете эту лучшую практику, вам все равно не нужно помещать закрытый ключ общего пользователя на сервер; вам просто нужно разослать копию закрытого ключа каждому пользователю, который будет использовать этот ключ для подключения к общей учетной записи.
Делаем это на хосте 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
В первой строке вы копируете открытый ключ Тома из Host A (host-a:~tom/.ssh/tom_public_key
) к хосту B в файл author_keys для общего пользователя (host-b:~shared/.ssh/authorized_keys
), то вы можете подключиться (вторая линия) от А к В без пароля:
Вы можете иметь несколько открытых ключей в файле author_keys (по одному на строку) и использовать один и тот же открытый ключ для нескольких удаленных хостов. Вы также можете использовать один и тот же закрытый ключ на нескольких машинах, но я бы назвал это плохой практикой.
Если вы используете SSH со своего ноутбука на хосте A, вы можете хранить закрытый ключ локально и использовать переадресацию агента (ssh -A host_a).