Как можно использовать несколько закрытых ключей с ssh?


58

Мне удалось настроить SSH для использования аутентификации с закрытым / открытым ключом. Теперь я могу сделать

ssh user@server1

И он входит в систему с закрытым ключом. Теперь я хочу подключиться к другому серверу и использовать другой ключ. Как сделать так

ssh user@server1

использует privatekey1

ssh user@server2

и использует privatekey2


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

ни один из ответов, похоже, не отвечает на полный вопрос, например, как создать разные ключи privatekey1 и privatekey2
jpwynn

Ответы:


49

Есть несколько вариантов.

  1. Загрузите оба ключа в ваш агент ssh, используя ssh-add. Тогда оба ключа будут доступны при подключении к обоим серверам

  2. Создайте свой $HOME/.ssh/configфайл и создайте Hostраздел для сервера server1 и еще один для сервера server2. В каждом Hostразделе добавьте IdentityFileпараметр, указывающий на соответствующий файл закрытого ключа.


2
Агент ssh был отличной идеей, также, если у меня есть файлы как открытого, так и закрытого ключей, т.е. key1 и key1.pub, в ~ / .ssh он автоматически загрузит их.
Джошуа

57

Вы можете установить это в своем ~/.ssh/configфайле. У вас будет что-то вроде этого:

Host server1
IdentityFile ~/.ssh/key_file1

Host server2
IdentityFile ~/.ssh/key_file2

man ssh_config это ссылка


4
Вы также можете указать Userдля каждого хоста, чтобы сократить количество нажатий клавиш. Наконец, когда вы генерируете новый ключ SSH для каждого хоста, ssh-keygenубедитесь, что вы действительно вводите альтернативный путь ключа.
Марко Чеппи

Есть ли возможность указать ключ по умолчанию, например, сказать, host x ->key1а затем остальные хостыkey2
azerafati

Да, используйте sh Host * И добавьте значения по умолчанию, после чего можно добавить переопределения. Также: В sh man_ssh_config частности, часть в разделе «Хост» в отношении звездочки '*' и восклицательного знака '!'
immeëmosol
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.