Назад | Перейти на главную страницу

authorized_keys имеет мой ключ, но он все еще отклонен

Я подключаюсь с машины M1 к машине M2 с помощью ssh (тому же пользователю на другой машине). Я также должен упомянуть, что пользователь использует один и тот же ключ на обеих машинах. С аутентификацией по паролю все работает нормально; не так с аутентификацией с открытым ключом; Я обеспечил ~/.ssh/authorized_keys на M2 имеет ключ RSA как авторизованный, но все же - ssh возвращается к аутентификации по паролю. Я получаю следующее с ssh -vvv:

debug2: key: /home/joeuser/.ssh/id_rsa (0x7f42679e8200),
debug2: key: /home/joeuser/.ssh/id_dsa ((nil)),
debug2: key: /home/joeuser/.ssh/id_ecdsa ((nil)),
debug1: Authentications that can continue: publickey,password,keyboard-interactive
debug3: start over, passed a different list publickey,password,keyboard-interactive
debug3: preferred publickey,keyboard-interactive,password
debug3: authmethod_lookup publickey
debug3: remaining preferred: keyboard-interactive,password
debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/joeuser/.ssh/id_rsa
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug1: Authentications that can continue: publickey,password,keyboard-interactive
debug1: Trying private key: /home/joeuser/.ssh/id_dsa
debug3: no such identity: /home/joeuser/.ssh/id_dsa: No such file or directory
debug1: Trying private key: /home/joeuser/.ssh/id_ecdsa
debug3: no such identity: /home/joeuser/.ssh/id_ecdsa: No such file or directory
debug2: we did not send a packet, disable method

Я должен упомянуть, что я я возможность подключения с использованием аутентификации с открытым ключом с других машин (не с тем же ключом).

Каковы потенциальные причины отказа аутентификации на основе ключей в этом случае?

Примечание: обе машины - SLES (SuSE Linux Enterprise Server) 11.

Вы получаете ошибку

/home/joeuser/.ssh/id_dsa: No such file or directory

Убедитесь, что этот файл существует, содержит закрытый ключ, соответствующий добавленному вами открытому ключу, принадлежит joeuser и имеет 600 права пользователя:

sudo chown joeuser /home/joeuser/.ssh/id_dsa
sudo chmod 600 /home/joeuser/.ssh/id_dsa

Вы также должны попытаться явно определить закрытый ключ следующим образом:

ssh -i ~/.ssh/id_rsa user@remote.example.com

Если вы не уверены, что это правильный ключ, я бы рекомендовал создать новую пару ключей RSA.

ssh-keygen -b 4096

и добавляем содержимое открытого ключа ~/.ssh/id_rsa.pub в файл authorized_keys удаленного сервера. Убедитесь, что вы не перезаписываете существующий закрытый ключ, который вам по-прежнему нужен для входа на другие серверы!