ssh : id_rsa는 작동하지 않지만 이름을 바꾸면 작동합니다.


10

~ / .ssh 폴더에이 id_rsa가 있습니다. 그러나 그것은 단지 인증하지 않습니다. 복사하여 id_rsa가 아닌 다른 이름으로 바꾸면 작동합니다.

[qfan@mycomputer .ssh]$ ls -al id_rsa id_rsa_good
-rw------- 1 qfan qfan 1766 Dec  3 18:35 id_rsa
-rw------- 1 qfan qfan 1766 Nov 20 19:43 id_rsa_good
[qfan@mycomputer .ssh]$ sha1sum id_rsa id_rsa_good
8cc7f68170038b184bba0541be7d105bb36f7d11  id_rsa
8cc7f68170038b184bba0541be7d105bb36f7d11  id_rsa_good
[qfan@mycomputer .ssh]$ ssh localhost -i id_rsa
qfan@localhost's password: 

[qfan@mycomputer .ssh]$ ssh localhost -i id_rsa_good
Enter passphrase for key 'id_rsa_good': 
Last login: Tue Dec  3 18:46:46 2013 from 127.0.0.1
[qfan@mycomputer ~]$ exit
logout
Connection to localhost closed.

"ssh localhost -i id_rsa"가 실패하고 ssh가 일반 비밀번호 로그인을 요청하기 시작합니다.

나는 -vvv를 사용했고 로그의 차이점은 다음과 같습니다.

[qfan@mycomputer .ssh]$ ssh localhost -i id_rsa_good -vvv 2> log1_good.txt
Enter passphrase for key 'id_rsa_good': 

[qfan@mycomputer .ssh]$ ssh localhost -i id_rsa -vvv 2> log2_bad.txt
qfan@localhost's password: 

[qfan@mycomputer .ssh]$ diff log1_good.txt log2_bad.txt 
7c7
< debug3: Not a RSA1 key file id_rsa_good.
---
> debug3: Not a RSA1 key file id_rsa.
41c41
< debug1: identity file id_rsa_good type -1
---
> debug1: identity file id_rsa type 1
81,82c81,82
< debug2: dh_gen_key: priv key bits set: 126/256
< debug2: bits set: 533/1024
---
> debug2: dh_gen_key: priv key bits set: 127/256
> debug2: bits set: 503/1024
90c90
< debug2: bits set: 506/1024
---
> debug2: bits set: 539/1024
103c103
< debug2: key: id_rsa_good ((nil))
---
> debug2: key: id_rsa (0x7f953ea96f90)
136,138c136,145
< debug1: Trying private key: id_rsa_good
< debug1: PEM_read_PrivateKey failed
< debug1: read PEM private key done: type <unknown>
---
> debug1: Offering public key: id_rsa
> debug3: send_pubkey_test
> debug2: we sent a publickey packet, wait for reply
> debug3: Wrote 368 bytes for a total of 1477
> debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
> debug2: we did not send a packet, disable method
> debug3: authmethod_lookup password
> debug3: remaining preferred: ,password
> debug3: authmethod_is_enabled password
> debug1: Next authentication method: password
[qfan@mycomputer .ssh]$ 

키 파일에서 암호 문구를 제거하려고 시도했지만 id_rsa라는 이름으로 여전히 작동하지 않습니다.

그래서 무엇이 잘못 되었습니까?

-------편집하다-------

[qfan@mycomputer .ssh]$ file id_rsa
id_rsa: ASCII text
[qfan@mycomputer .ssh]$ cat id_rsa |head -n2
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED

1
파일에 RSA 키가 포함되어 있습니까? 이름이 id_rsa 인 경우에는 ssh가 rsa 키 (유형 1) 인 것으로 가정하지만 이름을 id_rsa_good로 지정하면 확실하지 않습니다 (유형 -1).
mfarver

1
당신 file id_rsa은 우리가 결과를 볼 수 있습니까 ? 그것과 매우 다른 것이 아니라면 id_rsa: PEM RSA private key, 더 많은 점이 있습니다.
MadHatter

텍스트 파일 : [qfan @ mycomputer .ssh] $ 파일 id_rsa id_rsa : ASCII 텍스트 [qfan @ mycomputer .ssh] $ cat id_rsa | head -n2 ----- BEGIN RSA PRIVATE KEY ----- Proc-Type : 4, ENCRYPTED
Qi Fan

답변:


12

이유를 찾았습니다. id_rsa.pub같은 .ssh폴더 에있는 내 파일은 다른 ID 파일에 속하는 공개 키입니다. 때 id_rsa.pub일치하지 않는 경우 id_rsa,자동으로 실패합니다. id_rsa.pub파일을 제거하거나 이동 하면 id_rsa작동합니다.


1
왜 그런지 이해하고 싶습니다.
David Resnick

2
@DavidResnick 나는 serverfault.com/a/587560/214507
kasperd
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.