Можно ли указать перенаправленные ключи с помощью директивы 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
Имя хоста github.com
Пользователь git
IdentityFile ~/.ssh/some_other_key
и таким образом мерзавец никогда не запутывается. Можно ли создать .ssh/config правила для переадресованных ключей на моих производственных ящиках, чтобы они всегда знали, какой ключ использовать при извлечении нового кода? В основном я хочу иметь возможность сделать:
Хост work.github.com
Имя хоста github.com
Пользователь git
IdentityFile some_forwarded_key
Спасибо!