Я работаю с группой серверов в VPN с ubuntu 18.04, и для каждого сервера у меня есть отдельный файл ключей. Однако, когда я пытаюсь безопасно копировать файлы (например, безопасно распространять ключ munge между серверами), мне отказывают, поскольку у меня нет подходящего ключа (по крайней мере, я думаю, что это причина, он возвращает «Permission denied (publickey)». ).
Хранение моих закрытых ключей на каждом сервере, вероятно, плохая практика? Копирование файлов на мою локальную машину, а затем их копирование на другой сервер - это боль, и я не уверен, что это безопасно.
Как с этим правильно справиться? Могу ли я использовать пользователя на каждом сервере (например, munge) для копирования между ними, если не в любое место, то в определенные папки, которые я могу позже sudo cp? Есть ли вариант, который не является уязвимостью?
Если вам нужно обмениваться данными между серверами, вы можете посмотреть scp -3 server1:path1 server2:path2
. Он будет передавать данные и использовать ваш хост как человека посередине (без прямого соединения между серверами).
Вы также можете настроить свой .ssh/config
файл с IdentityFile
набор опций для каждого серверного блока:
Host server1
IdentityFile ~/.ssh/file1
Host server2
IdentityFile ~/.ssh/file2
Аутентификация на основе ключей с помощью ssh (scp является ответвлением ssh) - это вопрос криптографии с открытым ключом. У вас лично есть закрытый ключ, который вы держите в секрете и раздаете свой открытый ключ всем.
Итак, чтобы ответить на ваш вопрос, вам НЕ следует и не нужно несколько закрытых ключей, достаточно одного. Затем вы загружаете свои открытые ключи на ВСЕ серверы. Вы должны хранить резервную копию вашего закрытого ключа в надежном месте, зашифрованном с помощью парольной фразы.
Во-вторых, хранение ваших закрытых ключей на серверах, к которым вы обращаетесь, противоречит философии криптографии с открытым ключом; вы не храните секретный ключ в секрете. Ваш закрытый ключ должен быть у вас в целости и сохранности и храниться в секрете от всех; только у вас должен быть закрытый ключ и ни у кого другого.
Также рекомендуется использовать одно и то же имя пользователя и открытый ключ на всех серверах.
Так что держите свой единственный закрытый ключ при себе и раздайте открытый ключ всем серверам, к которым вы хотите получить доступ. Теперь вы можете использовать тот же закрытый ключ для входа на все свои серверы!