Это может быть глупый вопрос, но я все равно должен его задать:
Я уже настроил открытый ключ ssh для моей клиентской машины A. Я скопировал открытый ключ на удаленный сервер, все работает отлично, я могу войти с машины A.
Теперь я хочу получить доступ к этому серверу с другой машины и, следуя лучшим практикам, я хочу сгенерировать другой ключ для клиентской машины B, а не использовать ключ с машины A снова. Конечно, я могу сгенерировать пару ключей, но я не могу скопировать этот новый открытый ключ на сервер, потому что клиентская машина B не имеет доступа к серверу, только A имеет.
Единственным решением, которое я вижу на данный момент, кажется передача нового открытого ключа на USB-накопителе на клиентскую машину A и копирование его на сервер оттуда, но это кажется немного утомительным и не очень практичным, когда n машин расположены довольно далеко друг от друга.
Как правильно это сделать?
Клиент и сервер работают под управлением Linux.
Не уверен, что это правильный подход, вам все равно нужно каким-то образом получить доступ к серверу, и, поскольку машина A пока является единственной точкой доступа, вам все равно нужно получить ее физически хотя бы один раз. как и другие n машин. Итак, почему бы не собрать все публичные ключи на флешку и не переместить ее на машину А, чтобы распространить на домашние .ssh конфигурационные каталоги пользователей сервера?
Без флешки тоже есть некоторые варианты.
Вар №1. Временно разрешите вход по паролю на сервер с машины A. Сгенерируйте пары ключей и скопируйте публичные ключи на сервер с машин B, C, D и т. д. обычным способом. Отключите вход на сервер по паролю.
Вар №2.Если даже вход с временным паролем считается недостатком безопасности, создайте на сервере временного пользователя, у которого нет доступа только к своему домашнему каталогу, разрешите вход с паролем только для этого пользователя. Создайте пары ключей и скопируйте публичные ключи на сервер с машин B, C, D и т. д. в домашний каталог этого пользователя. Pubkey не является конфиденциальным, и его потенциальный захват считается безопасной ситуацией, однако его спуфинг — нет, поэтому вы можете подумать о том, чтобы как-то зашифровать или подписать его (gpg). Войдите на сервер с машины A, распространите pubkey среди пользователей сервера, отключите используемого временного пользователя.
Вар №3. Если перезагрузка сервера ssh невозможна, вы можете сделать машину A временным сервером ssh и использовать ее в качестве промежуточной станции для копирования открытых ключей ssh на реальный сервер.
Вар №4. Используйте другой канал связи (другой удаленный сервер, может быть даже публичный, электронная почта и т.п.). Еще раз, pubkey не является конфиденциальным, но обязательно подпишите их, чтобы защитить от спуфинга.
Ну, вам ПРИДЕТСЯ передать открытый ключ на удаленный сервер каким-то образом.
Однако, поскольку открытый ключ не является конфиденциальным (отсюда и название), не стесняйтесь копировать его на USB-накопитель, загружать куда-либо, помещать в заметку и т. д.
Просто убедитесь, что ключ, который вы добавить на сервер действительно тот, который вы загрузили из своего клиента!
Обычно я перемещаю ключи ssh с помощью копирования и вставки. но вы также можете отправить их по электронной почте, http, netcat и т. д., это просто текст.
Если вы можете получить открытый ключ для машины C на машине B, вы можете затем использовать ssh с B на A и установить ключ для C