Я помещал свои ssh файлы идентификационных данных в моем ~/.ssh/папка. У меня есть, вероятно, приблизительно 30 файлов там.
Когда я соединюсь с серверами, я укажу файл идентификационных данных для использования с чем-то как
ssh -i ~/.ssh/client1-identity client1@10.1.1.10
Однако, если я не указываю файл идентификационных данных и просто использую что-то вроде этого:
ssh user123@example.com
Я получаю ошибку
Too many authentication failures for user123
Я понимаю, что это вызвано тем, что, если никакой файл идентификационных данных не указан, и ssh, может найти файлы идентификационных данных, то он попробует всех их.
Я также понимаю, что могу отредактировать ~/.ssh/config
файл и указывает что-то как:
Host example.com PreferredAuthentications keyboard-interactive,password
чтобы препятствовать тому, чтобы то соединение пробовало известные файлы идентификационных данных.
Так, я предполагаю, что мог переместить свои файлы идентификационных данных за пределами ~/.ssh/
каталог, или я мог указать каждый хост, для которого я хочу отключить аутентификацию файла идентификационных данных в файле конфигурации, но есть ли какой-либо способ сказать, что SSH для покупки значения по умолчанию не ищут файлы идентификационных данных? Или указывать тех это будет искать?
Можно использовать IdentitiesOnly=yes
опция наряду с IdentityFile
(см. ssh_config страницу справочника). Тем путем можно указать, какой файл (файлы) это должно искать.
В этом примере ssh только посмотрит в идентификационных данных, данных в ssh_config файлах + эти 4, перечисленные на командной строке (идентификационные данные, обеспеченные агентом, будут проигнорированы):
ssh -o IdentitiesOnly=yes \
-o IdentityFile=id1.key \
-o IdentityFile=id2.key \
-i id3.key \
-i id4.key \
user123@example.com
Формы -i
и -o IdentityFile=
являются взаимозаменяемыми.