Я подключаюсь с машины 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 удаленного сервера. Убедитесь, что вы не перезаписываете существующий закрытый ключ, который вам по-прежнему нужен для входа на другие серверы!