Наличие множества 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 будет единожды запрашивать у вас ключевую фразу и её не придется постоянно вводить при каждом использовании.
Добавить комментарий
Для отправки комментария вам необходимо авторизоваться.