Можно ли указать перенаправленные ключи с помощью директивы IdentityFile в .ssh / config?
Я столкнулся с этой причудой, когда пытался развернуть некоторый код через Capistrano / GIT на нашем производственном сервере. И мой личный, и мой рабочий ключи GIT всегда загружаются в мой агент SSH, и так получилось, что мой личный ключ был добавлен в агент первым. Я использую переадресацию агентов при развертывании с Capistrano, поэтому, когда хост пытался аутентифицировать операцию `git pull`, он завершился ошибкой со следующей ошибкой:
ОШИБКА: доступ к «некоторому репо» запрещен «вашему пользователю».
потому что он пытался аутентифицироваться с использованием моего личного ключа git, прежде чем пытаться использовать соответствующий ключ (который появился позже в агенте ssh), и предполагал, что у меня есть доступ к иностранному репо, к которому у меня нет разрешения. Потенциально я могу просто предоставить своему личному пользователю доступ к каждому рабочему репо, но на своем локальном компьютере я могу обойти эту проблему, определив пользовательские домены в .ssh / config следующим образом:
Хост personal.github.com
Hostname github.com
Пользователь мерзавец
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
Благодарность!
источник
ssh -v -T ...
сервер принимает открытый ключ, но затем ssh сообщает,No such identity: /home/name/.ssh/id_rsa: No such file or directory
что аутентификация не проходит. У меня включен ForwardAgent во всех моих конфигах. В чем может быть проблема?