Как и большинство системных администраторов, я все время использую openssh. У меня есть около дюжины ключей SSH, мне нравится иметь разные ключи SSH для каждого хоста. Однако это вызывает проблему, когда я подключаюсь к хосту в первый раз, и все, что у меня есть, это пароль. Я хочу просто подключиться к хосту, используя пароль, в этом случае нет ключа ssh. Однако ssh-клиент предложит все открытые ключи в моем ~/.ssh/
(я знаю это, посмотрев на вывод ssh -v
). Поскольку у меня их так много, я буду отключен из-за слишком большого количества ошибок аутентификации.
Есть ли способ сказать моему SSH-клиенту не предлагать все SSH-ключи?
ssh
public-key
private-key
Рори
источник
источник
Ответы:
Это ожидаемое поведение в соответствии с man-страницей
ssh_config
:По сути, указание
IdentityFile
s просто добавляет ключи к текущему списку, который агент SSH уже представил клиенту.Попробуйте переопределить это поведение в нижней части вашего
.ssh/config
файла:Вы также можете переопределить этот параметр на уровне хоста, например:
источник
ssh -o "IdentitiesOnly true" -v -A user@host
то, что я использую для входа на компьютер, на котором нет ни одного из моих ключей, но я хочу предложить переадресацию агента для продолжения. (-v
для многословной отладки).yes
(и нетtrue
)?IdentitiesOnly
может не всегда помочь, возможно, вам придется исключить хост специально; см superuser.com/questions/859661/...Хотя другие намекали на это с помощью решений на основе конфигурации, вероятно, стоит отметить, что вы можете легко сделать это единовременно в командной строке с помощью:
источник
Следуя решению Джеймса Сниринджера, вы можете просто установить ssh_config в соответствии с:
Если вы подключаетесь с определенным ключом ко многим машинам, не входящим в общий домен, рассмотрите возможность предоставления им всех CNAME в вашем собственном DNS. Я делаю это со всеми системами клиентов.
источник
Подобно решению user23413, вы можете полностью отключить аутентификацию с открытым ключом для конкретного хоста (или шаблона с подстановочными знаками):
источник
Если вы укажете на конкретный файл ключа с помощью ssh -i / path / to / key, он будет использовать его только в том случае, если в агент загружены другие файлы, и вам не будет предложено ввести пароль. Вы также можете отредактировать ~ / .ssh / config и объявить что-то вроде этого ...
Хост foo.example.com
IdentityFile .ssh / id_rsa_foo.example.com
Вы также можете сделать ...
Хост * .example.org
IdentityFile .ssh / id_rsa_example.org
источник
IdentitiesOnly
только с этим будет.