システムへのSSH接続は成功しますが、-v
フラグがなくてもkey_load_public: invalid format
メッセージが表示されます。以下は、verboseフラグを使用した出力です。
具体的には
debug1: key_load_public: No such file or directory debug1: identity file /home/myname/.ssh/private_rsa_key-cert type -1
私はそのようなファイルを持っていないので問題のようです。ただし、別のシステムでチェックしたところ、上記と同じ2行が表示されました。ただし、その前にkey_load_public: invalid format
はありません。これは、私が実際に取り除きたいものです。両方のリモートシステムのauthorized_keysファイルの権限は同じに見え、private_keysの権限も同じに見えます。
$ ssh -v desired_Host
OpenSSH_7.2p2, OpenSSL 1.0.2g 1 Mar 2016
debug1: Reading configuration data /home/myname/.ssh/config
debug1: /home/dli/.ssh/config line 16: Applying options for desired_Host
debug1: Reading configuration data /etc/ssh_config
debug1: Connecting to desired_Host [X.X.X.X] port 22.
debug1: Connection established.
key_load_public: invalid format
debug1: identity file /home/myname/.ssh/private_rsa_key type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/myname/.ssh/private_rsa_key-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_7.2
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.3
debug1: match: OpenSSH_5.3 pat OpenSSH_5* compat 0x0c000000
debug1: Authenticating to desired_Host:22 as 'myname'
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: algorithm: diffie-hellman-group-exchange-sha256
debug1: kex: Host key algorithm: ssh-rsa
debug1: kex: server->client cipher: aes128-ctr MAC: [email protected] compression: none
debug1: kex: client->server cipher: aes128-ctr MAC: [email protected] compression: none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(2048<3072<8192) sent
debug1: got SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: got SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Server Host key: ssh-rsa SHA256:EmG/FBK0OCXtaAqAkfHKxoXKLGiZiHUsQpObK6aWd30
debug1: Host 'desired_Host' is known and matches the RSA Host key.
debug1: Found key in /home/myname/.ssh/known_hosts:39
debug1: rekey after 4294967296 blocks
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: rekey after 4294967296 blocks
debug1: SSH2_MSG_NEWKEYS received
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Next authentication method: publickey
debug1: Trying private key: /home/myname/.ssh/private_rsa_key
debug1: Authentication succeeded (publickey).
Authenticated to desired_Host ([X.X.X.X]:22).
debug1: channel 0: new [client-session]
debug1: Requesting [email protected]
debug1: Entering interactive session.
debug1: pledge: network
2つの別個のメッセージがあります。
これは、.ssh/private_rsa_key
の形式が間違っていることを示しています。
key_load_public: invalid format
debug1: identity file /home/myname/.ssh/private_rsa_key type -1
これは-v
スイッチなしでは表示されず、証明書がないことを通知するだけです。
debug1: key_load_public: No such file or directory
debug1: identity file /home/myname/.ssh/private_rsa_key-cert type -1
2番目のメッセージについて心配する必要はありません。
私が発行したとき
ssh myid@mydomain
メッセージが表示されました(リモートボックスに正常にログインした場合でも)
key_load_public: invalid format
これは、リモートホストがファイル〜myid/.ssh/authorized_keys SO =解決策は、ローカルの〜/ .ssh/xxx.pubを修正して、公開鍵が含まれるようにすることでした
これは、.sshフォルダーにRSAおよびDSAキーがあったために起こりました。 DSAキーはシステムで受け入れられなくなったので、削除してメッセージを破棄しました。
私はようやく、RSA秘密鍵の内容を正確にコピーして貼り付けることに成功しました。
-----BEGIN RSA PRIVATE KEY-----
<content>.....
-----END RSA PRIVATE KEY-----
すべてのEOLタブまたはそこにあったものをすべて含みます。
-iオプションを使用すると、scpとsshでこの警告メッセージが表示されました。原因は公開鍵ファイルに余分であることがわかりました。私のpub鍵ファイルには、「wc -l」を含む2行がありました。私は余分を削除しました、そして今それは「wc -l」で1行だけを持ち、警告メッセージはありません。 sshとscpが警告メッセージの有無にかかわらず正しく機能したことを明確にする必要があります。