ssh key_load_public: 잘못된 형식 경고

ssh key_load_public: 잘못된 형식 경고

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

해당 파일이 없어서 문제인 것 같습니다. 그러나 다른 시스템을 확인해 보니 위의 두 줄에 대해서도 동일한 메시지가 표시되었습니다. 하지만 그 전에는 그렇지 않습니다 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

답변1

나에게도 같은 문제가 있지만 소스와 솔루션은 다릅니다.

클라이언트의 .ssh 폴더에 id_rsa.foo(올바른 개인 키)와 id_rsa.foo.pub(일치하는 pubkey)가 있습니다. 공개 키를 삭제하거나 이름을 바꾸면 메시지가 사라집니다.

답변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

두 번째 메시지는 걱정할 것이 없습니다.

답변3

내가 발행할 때

ssh myid@mydomain

(원격 박스에 성공적으로 로그인했음에도 불구하고) 메시지를 받습니다.

key_load_public: invalid format

이는 원격 호스트가 ~myid/.ssh/authorized_keys 파일에 내 공개 키를 올바르게 포함하더라도 내 로컬 ~/.ssh/xxx.pub에 실제로 내 개인 키 파일의 내용이 포함되어 있기 때문에 발생합니다. 따라서 해결책은 수정하는 것입니다. 내 로컬 ~/.ssh/xxx.pub에 내 공개 키가 있습니다.

답변4

마침내 성공하여 개인 RSA 키의 내용을 정확하게 복사하여 붙여넣었습니다.

-----BEGIN RSA PRIVATE KEY-----
<content>.....
-----END RSA PRIVATE KEY-----

모든 EOL 탭 또는 기타 항목이 포함됩니다.

관련 정보