Я всегда бегу 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/config
(в IdentityFile
параметр - -i
опция SSH фактически отменяет это. Видеть man ssh_config
подробнее).
Если у вас есть несколько закрытых ключей, которые нужно использовать ssh-agent
вероятно, лучший выбор.
Видеть man ssh-agent
Больше подробностей.
Если вы используете разные ключи для разных серверов, я думаю, что нет.
Если вы используете один ключ для всех серверов, просто сохраните его как ~/.ssh/id_rsa
, он будет использован автоматически.