it-swarm-ko.tech

authorized_keys를 사용하여 ssh를 통한 자동 로그인이 작동하지 않는 이유는 무엇입니까?

개인/공개 dsa-keypair를 만들었습니다. 서버에 공개 키를 넣었습니다.

~/.ssh/authorized_keys

모든 것이 내 다른 서버처럼 설정되었지만 서버가 내 노력을 무시하는 것 같습니다.

11
Magnar

귀하의 문제는 이미 다른 답변으로 해결되었을 수 있지만, 사인 오프하기 전에 sshd_config 변경 사항을 검증하지 않도록 충분한 시스템을 잠갔으므로 sshd 구성 변경 사항의 향후 디버깅에 유용 할 수있는 아래 프로세스를 생각해 냈습니다.

AFTER 테스트에서 예상 한 동작이 확인 될 때까지 활성 ssh 연결을 끊지 마십시오.

ㅏ. sshd가 무엇을해야한다고 생각하는지 확인하십시오.

비. "-t"를 사용하여 구성이 유효한지 확인하십시오.

씨. 실시간 모니터링 할 수있는 서버의 자세한 '테스트'버전을 시작합니다.

디. 실시간 모니터링 할 수있는 자세한 '테스트'클라이언트 연결 시작


ㅏ. sshd가 무엇을해야한다고 생각하는지 확인하십시오.

다음과 같이 모든 주석없이 sshd 구성 파일을 검토합니다 (sshd_config가 올바른 파일이고/etc/ssh에 있다고 가정).

$ grep -v "^ #"/ etc/ssh/sshd_config | grep -v "^ $"

이것은 우리가 변경하고 있다고 생각하는 것을 확인하기 위해 일을 정리할뿐입니다 (반드시 정확한지 여부는 아님).

비. "-t"를 사용하여 구성이 유효한지 확인하십시오.

내가 사용하고있는 sshd의 man 페이지에서,

-t 테스트 모드. 구성 파일의 유효성과 키의 온 전성 만 확인하십시오. 구성 옵션이 변경 될 수 있으므로 sshd를 안정적으로 업데이트하는 데 유용합니다.

다른 변경은 더 미묘한 상황을 가질 수 있습니다. 예를 들어, 공개 키 인증이 올바르게 작동하는지 확인할 때까지 암호 인증을 비활성화하지 마십시오.

씨. 실시간 모니터링 할 수있는 서버의 자세한 '테스트'버전을 시작합니다.

$ Sudo/usr/sbin/sshd -ddd -p 9999

이렇게하면 기존의 작업 세션이 활성 상태로 유지되지만 새 구성 변경 사항을 확인할 수있는 다른 sshd 인스턴스가 제공됩니다. SSHD는 이제 포 그라운드에서 사용자 정의 포트 (이 예에서는 9999)로 실행되고/var/log/authlog (또는 가능하면 /var/log/auth.log에서 추적 할 수있는 많은 시끄러운 디버그 정보)를 푸시합니다. OS에서.)

디. 실시간 모니터링 할 수있는 자세한 '테스트'클라이언트 연결 시작

자세한 정보 표시 모드에서 ssh 클라이언트 연결을 실행하여 오류 디버깅을 개선 할 수있는 자세한 정보를 화면에 표시하십시오.

$ ssh -vvv -p 9999 서버 이름

이제 서버의 로그 파일이나 클라이언트의 연결 화면에 문제를 격리하기에 충분한 정보가 있어야합니다.

솔루션은 일반적으로 파일 사용 권한 (Magnar 및 setatakahashi에 표시됨)에 있습니다.

행운을 빕니다

14
samt

소유자 속성이 잘못된 경우 서버는 authorized_keys 파일을 무시합니다. 이를 이렇게 변경하면 다음과 같이 수정됩니다.

chmod 0700 ~/.ssh
chmod 0600 ~/.ssh/authorized_keys
33
Magnar

$ chmod 700 ~

$ chmod 700 ~/.ssh

$ chmod 600 ~/.ssh/authorized_keys

/ etc/ssh/sshd_config에서 이러한 속성을 확인하십시오.

$ Sudo grep PubkeyAuthentication/etc/ssh/sshd_config

$ Sudo grep 프로토콜/etc/ssh/sshd_config

11
setatakahashi

또 다른 중요한 함정 ..

홈 디렉토리가 암호화 된 경우 sshd는 ~/.ssh/authorized_keys에 액세스 할 수 없습니다 ..

this answer 참조

0
ApriOri