Host SSH_CONFIG * Переопределяет более ранний хост

Все расширения происходят до выполнения команды. То, как команда интерпретирует полученные данные, зависит только от нее. Ни в одной из команд вашего примера нет никаких расширений - . не расширяется оболочкой.

Команда git использует . после изменения каталогов в соответствии с вашими опциями, поэтому не будет вашим текущим каталогом. Также tar не будет архивировать мой текущий каталог в следующей команде:

tar -C etc -c .
1
25.11.2018, 23:47
2 ответа

Я предполагаю, что вы используете агент ssh -или что-то подобное для кэширования ваших расшифрованных закрытых ключей, что может изменить порядок, в котором предлагаются ключи. Это будет видно на более подробном уровне журнала (с несколькими-v).

Кроме того, параметр IdentitiesOnlyимеет несколько иное значение, чем вы могли бы предположить. --он ограничивает ключи, которые будут предлагаться серверу, но не ограничивает их ключом, предшествующим параметру.В основном это используется, чтобы не предлагать удостоверения личности в месте по умолчанию, загружаемом автоматически(~/.ssh/id_{rsa,dsa,ecdsa,ed25519}).

Параметр IdentitiyFileтакже немного отличается от того, что вы предполагаете. Разрешается указывать несколько раз (, см. страницу руководства ), так что также будет использоваться тот, что указан в разделе Match *.

Если вы хотите использовать какой-то ключ по умолчанию, а другой только для этого конкретного хоста, переместите ключ «по умолчанию» в папку по умолчанию ~/.ssh/id_rsaи удалите его из файла конфигурации. Это должно решить ваши проблемы.

1
27.01.2020, 23:42

Недавно я столкнулся с этой же проблемой. Конфигурация хоста SSH допускает исключение, поэтому это будет делать то, что вы хотите (использовать один файл идентификации каждый, кроме псевдонима bitbucket.com)

Host bitbucket-personal
 HostName bitbucket.com
 User git
 IdentityFile ~/.ssh/personal
 IdentitiesOnly yes

Host * !bitbucket-personal
 AddKeysToAgent yes
 UseKeychain yes
 IdentityFile ~/.ssh/work

На справочной странице для ssh _config (для некоторой версии )указано, что используется первый набор значений, что, похоже, подразумевает, что исходная конфигурация должна работать. Но я обнаружил, что это исключение необходимо (для ssh в OSX, ssh -VOpenSSH_8.1p1, LibreSSL 2.7.3)

1
20.09.2021, 12:22

Теги

Похожие вопросы