며칠 동안 나를 괴롭히는 문제가 있습니다.
서버가 3개 있습니다. A, B, C.
SSH를 통해 A에서 B와 C에 액세스하고 싶습니다. A, B, C에 공개 키/authorized_keys를 설정했습니다....
시나리오 #1: SSH(.133)를 통해 A에서 B에 액세스 - 성공! 시나리오 #2: SSH를 통해 A에서 C(.148)에 액세스 -- 실패, 비밀번호 요청!
디버그 정보를 비교하십시오.
1개의 성공 사례는 ssh-rsa 키를 선호하는 OpenSSH 5.1입니다.
debug3: order_hostkeyalgs: prefer hostkeyalgs: ssh-rsa-
[email protected],[email protected],ssh-rsa.
2개의 실패한 사례; OpenSSH6.2이며 ssh-rsa 키를 좋아하지 않습니다.
debug3: order_hostkeyalgs: prefer hostkeyalgs: ecdsa-sha2-nistp256
[email protected],[email protected],ecdsa-
[email protected],ecdsa-sha2-nistp256,ecdsa-
sha2-nistp384,ecdsa-sha2-nistp521
내 키는 "ssh-keygen -t rsa" 명령으로 생성되었으므로 rsa 키라고 가정합니다. 이것이 주요 이유인지 확실하지 않습니다.
OpenSSH(sshd)에서 "기본 호스트 키"를 구성하는 방법은 무엇입니까?
아니면 다른 이유로 인해 이 문제가 발생했을 수도 있나요?
===debug for Scenario #1 and #2 :===
See it at: diffchecker.com/tj5v3iog
(이 영역은 디버깅 정보를 너무 많이 게시하는 것을 허용하지 않습니다:( )
답변1
SSHD가 ecdsa 키를 허용하도록 구성된 것 같습니다.
RSA가 아닌 ECDSA 키만 찾는 이유를 서버 측에서 추적하거나 ECDSA 키를 제공하여 클라이언트에서 문제를 해결할 수 있습니다.
클라이언트에서 ecdsa 키를 생성하고 사용하는 단계는 다음과 같습니다.
ssh-keygen -t ecdsa -b 256 -N '' -f ~/.ssh/id_ecdsa
ssh-copy-id -i ~/.ssh/id_ecdsa C
ssh-keygen에서 큰따옴표 대신 -N
작은따옴표 두 개(2x )를 확인하세요 .'