Я настраивал множество виртуальных машин для разных проектов, над которыми я работаю. Вместо того, чтобы использовать ssh-keygen на каждой машине, я копировал свой файл id_rsa с одной из моих машин на все остальные, которые я настраивал.

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

Является ли эта практика ужасной идеей? Должен ли я просто генерировать новый ключ для каждой виртуальной машины?

2 ответа2

2

SSH имеет функцию под названием "переадресация агента". Если он включен и если на компьютере A запущен ssh-agent с загруженным в него ключом, то вы можете подключиться по SSH к компьютеру B, из B в C, из C в ..., без необходимости куда-либо копировать закрытый ключ. кроме машины А.

Это очень хорошо работает, если у вас есть собственная рабочая станция (A), с которой вы подключаетесь ко всем [виртуальным] машинам.


machineA$ ssh-add
Enter passphrase for /home/grawity/.ssh/id_rsa:
Identity added: /home/grawity/.ssh/id_rsa

machineA$ ssh -A machineB

machineB$ ssh -A machineC

machineC$ ssh-add -l
4096 50:08:e7:0c:0e:7b:2b:47:88:9e:d5:11:7b:f6:ce:f5 /home/grawity/.ssh/id_rsa (RSA)

Вы можете активировать его постоянно добавляя ForwardAgent=yes под apropriate Host линии Host * для всех соединений) в ~/.ssh/config

1

id_rsa это ваш личный ключ.

Вы делаете это в дополнение к добавлению id_rsa.pub ко всем вашим «~/.ssh/known_hosts»? Если нет, то это не имеет большого смысла, так как вы все равно не сможете использовать ssh между ними без паролей.

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

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