Назад | Перейти на главную страницу

Использование ключей SSH из резервной копии на другом компьютере для доступа к серверу

Я создал сервер и настроил SSH, чтобы не разрешать вход в систему root и отключать доступ по паролю, поэтому для входа в систему принимается только SSH-ключ.

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

Также на всякий случай сделайте резервную копию этих ключей.

Допустим, завтра моя машина A умрет, и у меня есть новая машина B, и, конечно же, мне нужен доступ к моему серверу.

Здесь я не знаю, как все устроено. Должен ли я просто скопировать ключи из моей резервной копии на машину B, и это позволит мне получить доступ к моему серверу? Или ключи нужно импортировать через какую-нибудь команду OpenSSH?

Итак, мое первое сомнение касается импорта резервной копии, потому что я боюсь полностью потерять доступ к своему серверу.

Второй - о парольной фразе, которую я установил для своих ключей на машине A. Это все еще актуально для моих скопированных ключей? Или через импорт мне нужно установить новую парольную фразу на новой машине.

Спасибо.

Копирование резервных копий ключей на место будет работать нормально. Никакой специальной команды импорта не требуется. Парольная фраза - это собственно ключевой файл (в частности, это вход для функции получения ключа для генерации ключа шифрования для данных закрытого ключа).

Просто скопируйте закрытый ключ (с машины A) на другую машину (B). и вы можете войти на сервер с помощью команды

ssh -i private_keyfile.key username@xxx.xxx.xxx.xxx 

Примечание. Предположим, вы уже скопировали машину A с открытым ключом в authorized_key на сервере.

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

Ключ SSH состоит из двух частей:

  • то закрытый ключ это должно быть защищено надежным паролем
  • то открытый ключ (обычно оканчивается суффиксом .pub), который следует скопировать на сервер

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

Приватная часть размещается на любой из ваших локальных машин в каталоге ~ / .ssh /. Ожидаемые ключевые имена:

  • id_rsa
  • id_rsa-cert
  • id_dsa
  • id_dsa-cert
  • id_ecdsa
  • id_ecdsa-cert
  • id_ed25519
  • id_ed25519-cert

Если у вашего ключа одно из соответствующих имен, все готово. Если вам нужно использовать какой-то конкретный ключ, вы должны использовать параметр

/usr/bin/ssh -i <path_to_key_file>

То же самое и с публичной серверной частью. в пользователи В домашнем каталоге должен существовать файл ~ / .ssh / authorized_keys. Этот файл содержит все ключи publc, которым разрешено входить в систему как пользователь - по одному на строку. Часть комментария можно опустить.

Тем не менее, на любом сервере, на котором вы хотите использовать любой из ваших ключей SSH, скопируйте публичную часть в новую строку в файле authorized_keys.

Я бы посоветовал вам изучить справочную страницу SSHD (man sshd), особенно часть «AUTHORIZED_KEYS FILE FORMAT».

Также я думаю, что я также должен предупредить вас, что существуют некоторые правила для разрешений файловой системы для домашнего каталога, каталога ~ / .ssh и файла ~ / .ssh / authorized_keys, как указано на странице руководства sshd, короче говоря, он не может быть доступен для записи другими.

 ~/.ssh/authorized_keys
         Lists the public keys (DSA/ECDSA/RSA) that can be used for logging in as this user.  The format of this file is described
         above.  The content of the file is not highly sensitive, but the recommended permissions are read/write for the user, and
         not accessible by others.
         If this file, the ~/.ssh directory, or the user's home directory are writable by other users, then the file could be modi‐
         fied or replaced by unauthorized users.  In this case, sshd will not allow it to be used unless the StrictModes option has
         been set to “no”.