ここでのシナリオは、AWS によって生成された秘密キー (ED25519 キー) を受け取り、Windows 10/1809 の組み込み ssh (OpenSSH_for_Windows_7.7p1、LibreSSL 2.6.5) を使用して試したところ、正常に動作したというものです。
同じ PC で WSL Ubuntu 18.04.3 (OpenSSH_7.6p1 Ubuntu-4ubuntu0.3、OpenSSL 1.0.2n 2017 年 12 月 7 日) から同じキーを試したところ、キーの形式が無効であるというエラーが表示されます。
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 ~]$
何かアイデアはありますか? 同じ PC 上で Ubuntu 18.04.3 を実行している VirtualBox VM 内からも、別の Linux システムからもまだ試していません...
私が接続しているホストはCentOS 7.6です。そのサーバーレポートは
Remote protocol version 2.0, remote software version OpenSSH_7.4
接続すると、それが問題になります。
CR/LF と LF の違いかもしれないと思いましたが、WSL Linux で .pem ファイルを手動で編集して CR/LF をすべて削除し、ファイルの最後の行の後に LF を 1 つ残すようにしましたが、うまくいきませんでした。Windows の .ssh ディレクトリのコピーと WSL ~/.ssh のコピーを比較してみましたが、結果は同一でした。
これは、ssh の 2 つのバージョン (LibreSSL 2.6.5 と OpenSSL 1.0.2n) に関するものですか?