3

У меня в каталоге ~/ .ssh/ есть несколько ключей, каждый с отдельным именем проекта, для проектов с несколькими серверами. id_rsa_project1, id_rsa_project2

Однако ssh не будет их искать. Если я запускаю ssh -v user@projectserver я получаю вывод, подобный следующему:

...
debug1: Connection established.
...
debug1: Authentications that can continue: publickey,password,keyboard-interactive
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/me/.ssh/id_rsa
debug1: Authentications that can continue: publickey,password,keyboard-interactive
debug1: Trying private key: /home/me/.ssh/id_dsa
debug1: Trying private key: /home/me/.ssh/id_ecdsa
debug1: Trying private key: /home/me/.ssh/id_ed25519
debug1: Next authentication method: keyboard-interactive
debug1: Authentications that can continue: publickey,password,keyboard-interactive
debug1: Next authentication method: password
user@projectserver password: 

Похоже, это сделано специально , поскольку на ssh_config говорится, что по умолчанию для поиска используются идентификаторы ~/.ssh/id_dsa, ~/.ssh/id_ecdsa, ~/.ssh/id_ed25519 и ~/.ssh/id_rsa.

Конечно, я могу:

  • каждый раз добавляйте ключ -i ~/.ssh/id_rsa_project1 в командную строку или
  • добавьте IdentityFile ~/.ssh/id_rsa_project1 в спецификацию для сервера в ~/.ssh/config, или
  • добавьте IdentityFile ~/.ssh/id_rsa_project1 в /etc/ssh/ssh_config для каждого проекта.

... но все это кажется слишком громоздким для регулярности, с которой мы меняем ключи и файлы ключей.

Я попытался добавить IdentityFile ~/.ssh/* в /etc/ssh/ssh_config, но он воспринимается как литерал *, а не как подстановочный знак.

Как я могу сказать ssh прочитать и попробовать все ключевые файлы в ~/ .ssh/?

1 ответ1

4

Самый простой способ - добавить их в ssh-agent:

Стартовый агент:

eval `ssh-agent`

Добавьте все ключи в ~/.ssh:

ssh-add ~/.ssh/id_rsa_*

Но обратите внимание, что это не идеальный способ, так как все ключи опробованы на всех серверах, к которым вы хотите подключиться. Правильная настройка в ~/.ssh/config является рекомендуемым решением.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .