it-roy-ru.com

Добавление ключа RSA без перезаписи

Я хочу сгенерировать набор ключей для домашнего сервера, к которому я хотел бы подключиться по SSH, поэтому я делаю ssh-keygen -t rsa, но затем я получаю сообщение: id_rsa already exists. Overwrite (y/n)?

Ну, я не хочу перезаписывать, потому что ключи, которые у меня есть сейчас, я использую для SSH на серверах моего университета, и было бы больно снова делать все это барахло каждый раз, когда я хотел переключиться. Есть ли простой способ добавить ключи?

Я попытался следовать руководству (которое я не могу найти), в котором предлагалось что-то использовать команду cat, но я довольно растерялся. Кажется, что решение очень простое, чего я просто не вижу.

12
itsmichaelwang

Если я правильно помню, я исправил эту проблему, удалив Cygwin и используя вместо этого командную строку.

1
itsmichaelwang

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

% ssh-agent sh  # Replace with your favourite Shell.
$ ssh-add ~/.ssh/id_rsa_2
$ ssh somewhere
$ exit
%

ssh-agent также можно использовать без запуска новой оболочки как eval $(ssh-agent).

8
Ry-

Вы можете добиться этого, используя файл конфигурации в вашем домашнем каталоге в каталоге .ssh:

  1. Создайте свой ключ как обычно:

    ssh-keygen -t rsa
    
  2. Не перезаписывайте значение по умолчанию (обычно id_rsa). Вместо этого создайте новое имя. Это создаст отдельный файл с вашим ключом.

  3. В ~/.ssh создайте файл config со следующим содержимым:

    Host * (asterisk for all hosts or add specific Host)
      AddKeysToAgent yes
      UseKeychain yes
      IdentityFile <key> (e.g. ~/.ssh/yourKey)
    
  4. Ключ теперь добавлен в цепочку для ключей и может использоваться!

-

Вы можете использовать несколько IdentityFiles в вашей конфигурации (пример Mac): 

Host *
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile ~/.ssh/id_rsa_private_server
  IdentityFile ~/.ssh/id_rsa_github
  IdentityFile ~/.ssh/id_rsa_work_server
7
GreensterRox

У меня была та же проблема, что и у вас, и я ее решил.

В терминале есть:

"Введите файл, в котором нужно сохранить ключ (/home/you/.ssh/id_rsa):"

Вместо удара Enter или писать /home/you/.ssh/id_rsa, вы пишете /home/you/.ssh/id_rsa1.

0
maihuynhtruc

Вы можете сделать как minitech предложил и использовать один и тот же открытый ключ SSH на обоих серверах. Для этого откройте файл ~/.ssh/id_rsa.pub в текстовом редакторе, точно скопируйте содержимое файла, не добавляя новых пробелов или новых строк, и добавьте его на сервер, к которому вы хотите подключиться. Если ваше имя пользователя на сервере «user» по IP-адресу 123.45.56.78, используйте команду «ssh-copy-id [email protected]», или вы можете использовать:

cat ~/.ssh/id_rsa.pub | ssh [email protected] "mkdir -p ~/.ssh && cat >>  ~/.ssh/authorized_keys"
0
user3291025