Наличие множества ssh-ключей и необходимости их использовать для работы доставляет немало проблем. Их нужно где-то хранить, указывать каждый раз при использовании соответствующий ключ, запоминать ключевые фразы и вводить их (passphrase) при использовании. Ситуацию спасают возможность настройки ssh и утилита keychain (или её аналоги).
Примеры в этой заметке относятся к Alt Linux. В вашей системе, возможно, что-то будет по-другому.
Для начала создадим ключи с ключевыми фразами, например, "key_a" и "key_b". Обычно это делается через ssh-keygen -t ALGORITM -C "user@domain.ru".
Далее отредактируем (или создадим) конфигурацию ~/.ssh/config:
Host *
IgnoreUnknown UseKeychain
AddKeysToAgent yes
UseKeychain yes
Host gitflic_home
HostName gitflic.ru
User git
IdentityFile ~/.ssh/key_a
IdentitiesOnly yes
Host gitflic_work
HostName gitflic.ru
User git
IdentityFile ~/.ssh/key_b
IdentitiesOnly yes
Теперь добавим эти ключи в ssh-агент:
ssh-add ~/.ssh/key_a
ssh-add ~/.ssh/key_b
После этого ключами можно будет пользоваться проще чем раньше, например:
ssh host_name
Вместо "host_name" нужно подставить значение из конфигурации указанное в параметре Host. В примере из этой заметки это "gitflic_home" и "gitflic_work".
Для работы с git-репозиториями, через новые настройки ssh, необходимо внести изменения в наименования серверов. Пример:
# было:
git@gitflic.ru:itreview/templete-slim-v4-project.git
# стало:
gitflic_home:itreview/templete-slim-v4-project.git
gitflic_work:itreview/templete-slim-v4-project.git
Пример обновления ссылки на удаленный репозиторий:
git remote set-url origin gitflic_home:itreview/templete-slim-v4-project.git
Теперь автоматизируем ввод ключевых фраз (passphrase).
Проверим установлен ли у нас keychain:
keychain -V
При его отсутствии введите команду для установки:
sudo apt-get install keychain
Осталось лишь настроить активацию keychain при каждом запуске системы. Один из самых простых способов - добавить соответствующую команду в конец файла ~/.bash_profile или в любой другой файл с командами для запуска при старте системы:
eval `ssh-agent -s`
eval `keychain --eval --agents ssh /home/igor/.ssh/key_a`
eval `keychain --eval --agents ssh /home/igor/.ssh/key_b`
Теперь при старте системы keychain будет единожды запрашивать у вас ключевую фразу и её не придется постоянно вводить при каждом использовании.
Комментарии (0)