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

Аутентификация RSA в Ubuntu 9.10: ssh не работает, filezilla работает нормально

Для меня это загадка. Обычно я использую аутентификацию RSA без пароля для входа на удаленные серверы * nix с помощью ssh и sftp. До сих пор не было никаких проблем.

Я не могу подключиться к машине Ubuntu 9.10:

user@myclient$ ssh -i .ssh/Ganymede_key user@ganymede.server.com
[...]
debug1: Host 'ganymede.server.com' is known and matches the RSA host key.
debug1: Found key in /home/user/.ssh/known_hosts:14
debug2: bits set: 494/1024
debug1: ssh_rsa_verify: signature correct
debug2: kex_derive_keys
debug2: set_newkeys: mode 1
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug2: set_newkeys: mode 0
debug1: SSH2_MSG_NEWKEYS received
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug2: service_accept: ssh-userauth
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug2: key: .ssh/Ganymede_key (0xb96a0ef8)
debug2: key: .ssh/Ganymede_key ((nil))
debug1: Authentications that can continue: publickey,password,keyboard-interactive
debug1: Next authentication method: publickey
debug1: Offering public key: .ssh/Ganymede_key
debug2: we sent a publickey packet, wait for reply
debug1: Authentications that can continue: publickey,password,keyboard-interactive
debug1: Trying private key: .ssh/Ganymede_key
debug1: read PEM private key done: type RSA
debug2: we sent a publickey packet, wait for reply
debug1: Authentications that can continue: publickey,password,keyboard-interactive
debug2: we did not send a packet, disable method
debug1: Next authentication method: keyboard-interactive
debug2: userauth_kbdint
debug2: we sent a keyboard-interactive packet, wait for reply
debug2: input_userauth_info_req
debug2: input_userauth_info_req: num_prompts 1

Затем он возвращается к аутентификации по паролю. Если я отключу парольную аутентификацию на удаленном компьютере, моя попытка подключения просто не удастся с сообщением «Permission denied (publickey)». штат.

То же самое для sftp из командной строки.

«Забавно» то, что тот же самый ключ RSA работает как шарм с сеансом Filezilla sftp:

12:08:00 Trace: Offered public key from "/home/user/.filezilla/keys/Ganymede_key"
12:08:00 Trace: Offer of public key accepted, trying to authenticate using it.
12:08:01 Trace: Access granted
12:08:01 Trace: Opened channel for session
12:08:01 Trace: Started a shell/command
12:08:01 Status: Connected to ganymede.server.com
12:08:02 Trace: CSftpControlSocket::ConnectParseResponse()
12:08:02 Trace: CSftpControlSocket::ResetOperation(0)
12:08:02 Trace: CControlSocket::ResetOperation(0)
12:08:02 Status: Retrieving directory listing...
12:08:02 Trace: CSftpControlSocket::SendNextCommand()
12:08:02 Trace: CSftpControlSocket::ChangeDirSend()
12:08:02 Command: pwd
12:08:02 Response: Current directory is: "/root"
12:08:02 Trace: CSftpControlSocket::ResetOperation(0)
12:08:02 Trace: CControlSocket::ResetOperation(0)
12:08:02 Trace: CSftpControlSocket::ParseSubcommandResult(0)
12:08:02 Trace: CSftpControlSocket::ListSubcommandResult()
12:08:02 Trace: CSftpControlSocket::ResetOperation(0)
12:08:02 Trace: CControlSocket::ResetOperation(0)
12:08:02 Status: Directory listing successful

Есть предположения?

M

Ваш первый след выглядит несколько странно. Как указывает jneves, ssh предполагает, что файл содержит ваши открытый и закрытый ключи. В документации сказано, что «личность» - это закрытый ключ.

 -i identity_file
         Selects a file from which the identity (private key) for RSA or DSA authentication is
         read.

Если у вас действительно есть два ключа в одном файле (даже не подозревали, что это возможно), вам, вероятно, следует разделить их. В любом случае кажется, что вы не соответствуете документации.

удалите файл известных хостов в .ssh в домашней папке, и он может сработать.