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 탭 또는 기타 항목이 포함됩니다.