В старом сеансе оболочки число ssh-ключей в ssh-agent как правило, достаточно велико, чтобы не пройти проверку подлинности на сервере, просто потому, что клиент просто выбрасывает ключи, FIFO. Кажется, это происходит, даже если директива IdentityFile указана для соответствующего хоста в ~/.ssh/config .

Чтобы исправить это, я добавил в указанный файл директиву IdentitiesOnly . Теперь, однако, мне предлагается ввести пароль ключа ssh, когда я пытаюсь подключиться к серверу. И это несмотря на то, что ключ находится в ssh-agent . Когда я удаляю IdentitiesOnly из файла конфигурации, приглашение не отображается, и доступ предоставляется.

Итак, мои вопросы: как я могу гарантировать, что правильный ключ (и никакой другой) не будет представлен на данный сервер и избежать запроса пароля этого ключа?

1 ответ1

0

Я сталкивался с решением в этом сообщении в блоге.

По сути, идея состоит в том, чтобы ссылаться на открытый ключ, а не на закрытый ключ, в объявлении IdentityFile . Таким образом, окончательная конфигурация для хоста foo будет выглядеть примерно так:

Host foo
    Hostname foo.org
    User admin
    IdentityFile ~/.ssh/foo.pub
    IdentitiesOnly yes

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .