Чи можна вказати перенаправлені ключі за допомогою директиви IdentityFile в .ssh / config?
Я наткнувся на цю вигадку, коли намагався розгорнути якийсь код через Capistrano / GIT на нашому виробничому сервері. Як мій особистий, так і мій робочий ключі GIT завжди завантажуються в мій агент SSH, і так сталося, що мій особистий ключ був доданий до агента спочатку. Я використовую переадресацію агента під час розгортання з Capistrano, тому коли хост намагався ідентифікувати операцію `git pull`, він не вдався до наступної помилки:
ПОМИЛКА: В дозволі на "деяку репо" відмовлено "вашому користувачеві".
тому що він намагався пройти автентифікацію за допомогою мого особистого ключа git перед тим, як спробувати відповідний ключ (який пізніше з'явився в агенті ssh) і припустив, що я отримую доступ до іноземного репо, до якого я не маю дозволу на доступ. Я потенційно можу просто надати моєму особистому користувачеві доступ до кожної роботи репо, але на своїй локальній машині я можу обійти цю проблему, визначивши власні домени у .ssh / config так:
Хост personal.github.com Ім'я
хосту github.com
Користувач git
IdentityFile ~ / .ssh / some_key
Хост work.github.com
Hostname github.com
Користувач мерзотник
IdentityFile ~ / .ssh / some_other_key
і цей спосіб git ніколи не плутається. Чи можна створити .ssh / config правила для перенаправлених ключів на моїх виробничих коробках, щоб вони завжди знали, який ключ використовувати під час перетягування нового коду? В основному я хочу вміти:
Хост work.github.com
Hostname github.com
Користувач мерзотник
IdentityFile some_forwarded_key
Спасибі!