Как настроить открытый ключ SSH для другой машины без доступа?

Как настроить открытый ключ SSH для другой машины без доступа?

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

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

Единственное решение, которое я вижу на данный момент, это перенести новый открытый ключ на USB-накопитель на клиентскую машину A и скопировать его оттуда на сервер, но это кажется немного утомительным и не очень практичным, когда n машин расположены довольно далеко друг от друга.

Каков правильный подход к этому?

Клиент и сервер работают под управлением Linux.

решение1

Не уверен, что есть правильный подход, вам все равно нужно как-то получить доступ к серверу, и поскольку машина A пока является только точкой доступа, вам все равно нужно получить к ней физически хотя бы один раз, как и к другим n машинам. Так почему бы не собрать все открытые ключи на USB-флешку и не перенести их на машину A, чтобы распространить их на домашние каталоги конфигураций .ssh пользователей сервера?

Без USB-накопителя тоже есть несколько вариантов.

Вариант № 1. Временно включить парольный вход на сервер с машины A. Сгенерировать пары ключей и скопировать открытые ключи на сервер с машин B, C, D и т. д. обычным способом. Отключить парольный вход на сервер.

Вариант № 2. Если даже временный вход с паролем считается уязвимостью безопасности, создайте временного пользователя на сервере, который не имеет доступа ни к чему, кроме своего домашнего каталога, включите вход с паролем только для этого пользователя. Сгенерируйте пары ключей и скопируйте открытые ключи на сервер с машин B, C, D и т. д. в домашний каталог этого пользователя. Открытый ключ не является конфиденциальным, и его потенциальная кража считается безопасной ситуацией, однако его подделка — нет, поэтому вы можете рассмотреть возможность его шифрования или подписи каким-либо образом (gpg). Войдите на сервер с машины A, распространите открытый ключ среди пользователей сервера, отключите используемого временного пользователя.

Вариант № 3. Если перезагрузка сервера SSH невозможна, вы можете сделать машину A временным сервером SSH и использовать ее как промежуточную станцию ​​для копирования открытых ключей SSH на настоящий сервер.

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

решение2

Ну, вам придется передать открытый ключ на удаленный сервер.как-то.

Однако, поскольку открытый ключ не является конфиденциальным (отсюда и название), вы можете свободно скопировать его на USB-накопитель, загрузить куда-нибудь, поместить в заметку и т. д.

Просто убедитесь, что ключ, который вы добавляете на сервер, действительно тот, который вы загрузили из своего клиента!

решение3

Обычно я перемещаю ключи SSH методом копирования и вставки. Но вы также можете отправить их по электронной почте, через http, netcat и т. д., это просто текст.

Если вы можете получить открытый ключ для машины C на машине B, вы можете подключиться по ssh с B на A и установить ключ для C.

Связанный контент