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

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

Я всегда бегу ssh с -i параметр, и всегда сложно вводить правильный ключ для любого хоста, к которому я подключаюсь.

Есть ли файл конфигурации или что-то в этом роде (на Mac), чтобы определить, какой закрытый ключ использовать при подключении к определенному хосту?

Да, вы хотите создать ~/.ssh/config файл. Это позволяет вам определить ярлык для хоста, имя пользователя, под которым вы хотите подключиться, и какой ключ использовать. Вот моя часть с обфусцированными именами хостов:

Host tabs
     HostName tabs.com
     User     me
     IdentityFile       ~/.ssh/new_rsa

Host scm.company.com
     User       cap
     IdentityFile       ~/.ssh/git_rsa

Host project-staging
     HostName 50.56.101.167
     User     me
     IdentityFile       ~/.ssh/new_rsa

С этим я могу сказать: ssh tabs и подключитесь к хосту tabs.com как пользователь me, с ключом new_rsa, как если бы я использовал ssh me@tabs.com -i ~/.ssh/new_rsa.

Клиенты SSH обычно используют ~/.ssh/identity (ssh v1) или один из~/.ssh/id_rsa или ~/.ssh/id_dsa (v2) как закрытый ключ по умолчанию. Вы можете изменить это в ~/.ssh/configIdentityFile параметр - -i опция SSH фактически отменяет это. Видеть man ssh_config подробнее).

Если у вас есть несколько закрытых ключей, которые нужно использовать ssh-agent вероятно, лучший выбор.
Видеть man ssh-agent Больше подробностей.

Если вы используете разные ключи для разных серверов, я думаю, что нет.

Если вы используете один ключ для всех серверов, просто сохраните его как ~/.ssh/id_rsa, он будет использован автоматически.