У меня есть куча ключей ssh, полупостоянно загруженных в ssh-agent. ssh-add -L
перечисляет 6 ключей.
У меня есть и другие ключи, которые хранятся отдельно; скажем, на флешке. Я точно не хотите, чтобы они всегда были под рукой. Позвольте мне позвонить одному из них square.key
.
Проблема в следующем: в тех случаях, когда мне нужно square.key
, Я могу подключить USB-накопитель и указать -i /path/to/square.key
- но это не работает. -v
показывает почему:
debug1: Will attempt key: /home/ulidtko/.ssh/key1 RSA SHA256:<redacted> agent
debug1: Will attempt key: /home/ulidtko/.ssh/key2 RSA SHA256:<redacted> agent
debug1: Will attempt key: key3@localhost ED25519 SHA256:<redacted> agent
debug1: Will attempt key: key4@localhost RSA SHA256:<redacted> agent
debug1: Will attempt key: key5@localhost ed25519 ED25519 SHA256:<redacted> agent
debug1: Will attempt key: key6@localhost ECDSA SHA256:<redacted> agent
debug1: Will attempt key: /path/to/square.key ED25519 SHA256:<redacted> explicit
debug1: SSH2_MSG_EXT_INFO received
debug1: kex_input_ext_info: server-sig-algs=<rsa-sha2-256,rsa-sha2-512>
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Offering public key: /home/ulidtko/.ssh/key1 RSA SHA256:<redacted> agent
debug1: Authentications that can continue: publickey,password
debug1: Offering public key: /home/ulidtko/.ssh/key2 RSA SHA256:<redacted> agent
debug1: Authentications that can continue: publickey,password
debug1: Offering public key: key3@localhost ED25519 SHA256:<redacted> agent
debug1: Authentications that can continue: publickey,password
debug1: Offering public key: key4@localhost RSA SHA256:<redacted> agent
debug1: Authentications that can continue: publickey,password
debug1: Offering public key: key5@localhost ed25519 ED25519 SHA256:<redacted> agent
debug1: Authentications that can continue: publickey,password
debug1: Offering public key: key6@localhost ECDSA SHA256:<redacted> agent
Received disconnect from 46.101.206.106 port 22:2: Too many authentication failures
Disconnected from 46.101.206.106 port 22
Как-то ssh
считает, что попробовать все ключи от ssh-agent
Перед square.key
который я передаю вручную в командной строке. И это срабатывает Too many authentication failures
на сервере; square.key
никогда не предлагается.
Есть ли способ изменить или настроить этот порядок? Я бы хотел продолжить использовать ssh-agent
, но ssh
уважать мои установленные вручную флаги командной строки и попробовать -i
"явные" ключи в первую очередь.
Один обходной путь - проходить IdentityAgent=none
, либо в той же командной строке:
ssh -i /path/to/square.key -o IdentityAgent=none remote.server.net
или, что то же самое, через ~/.ssh/config
:
Host remote.server.net
IdentityFile /path/to/square.key
IdentityAgent none