Windows 10 ssh работает, WSL Ubuntu 18.04 ssh жалуется на «недопустимый формат»

Windows 10 ssh работает, WSL Ubuntu 18.04 ssh жалуется на «недопустимый формат»

Сценарий здесь следующий: я получил закрытый ключ, сгенерированный AWS (ключ ED25519), и попробовал его с помощью встроенного в Windows 10/1809 SSH (OpenSSH_for_Windows_7.7p1, LibreSSL 2.6.5), и он отлично работает.

Я попробовал тот же ключ на том же ПК, но из WSL Ubuntu 18.04.3 (OpenSSH_7.6p1 Ubuntu-4ubuntu0.3, OpenSSL 1.0.2n 7 декабря 2017 г.), и он выдал сообщение о том, что ключ имеет недопустимый формат.

Вызов ssh -v показывает:

....snip a bit here....
debug1: Authenticating to xxxxxxxx.demo.com:22 as 'jgauthier'
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: algorithm: curve25519-sha256
debug1: kex: host key algorithm: ecdsa-sha2-nistp256
debug1: kex: server->client cipher: aes128-ctr MAC: hmac-sha1 compression: none
debug1: kex: client->server cipher: aes128-ctr MAC: hmac-sha1 compression: none
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server host key: ecdsa-sha2-nistp256 SHA256:fCykR67cJynMNYYYv9jEO5PhYQgcaU0WRy/xmSsTxYQ
debug1: Host 'xxxxxxxx.demo.com' is known and matches the ECDSA host key.
debug1: Found key in /home/jgauthier/.ssh/known_hosts:1
debug1: rekey after 4294967296 blocks
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: rekey after 4294967296 blocks
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
------------------------------------------------------------------------------
                                    NOTICE
This IT system is provided for business use in accordance with approved
Policies and Procedures. By logging in, users acknowledge their understanding
that authorized administrators monitors and stores all activity generated on
this system as appropriate for business and security operations and may
disclose such activity or information as permitted by law.

------------------------------------------------------------------------------
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Trying private key: jgauthier_key.pem
Load key "jgauthier_key.pem": invalid format
debug1: No more authentication methods to try.
[email protected]: Permission denied (publickey).

Вот последние несколько важных строк из того, что работает:

debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Trying private key: jgauthier_key.pem
debug1: Authentication succeeded (publickey).
Authenticated to xxxxxxx.demo.com ([nn.nn.nn.nn]:22).
debug1: channel 0: new [client-session]
debug1: Requesting [email protected]
debug1: Entering interactive session.
debug1: pledge: network
debug1: console supports the ansi parsing
debug1: client_input_global_request: rtype [email protected] want_reply 0
Last login: Fri Oct 18 21:30:10 2019 from mm.mm.mm.mm
Last login: Fri Oct 18 21:30:10 2019 from mm.mm.mm.mm
[jgauthier@xxxxxxx ~]$

Есть идеи? Я еще не пробовал это сделать ни из виртуальной машины VirtualBox с Ubuntu 18.04.3 на том же ПК, ни из другой системы Linux...

Хост, к которому я подключаюсь, — CentOS 7.6. Его сервер сообщает

Remote protocol version 2.0, remote software version OpenSSH_7.4

когда я подключусь, если это имеет значение.

Я думал, что это может быть CR/LF против LF, но в WSL Linux я вручную отредактировал файл .pem, чтобы удалить все возможные CR/LF, и убедился, что оставил один LF после последней строки файла - но ничего не вышло. Я даже сделал diff между копией в моем каталоге Windows .ssh и копией в моем WSL ~/.ssh, и они идентичны.

Это что-то насчет двух версий ssh ​​- LibreSSL 2.6.5 и OpenSSL 1.0.2n?

Связанный контент