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


12

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

~/.ssh/authorized_keys

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


원하는 것이 비활성화되어 있는지 확인 /etc/ssh/ssh_config하고 확인하십시오 /etc/ssh/sshd_config.
Kristopher Johnson

sshd_config도 확인하고 싶을 것입니다.
Vagnerr 2009

감사. 답변을 업데이트했습니다 (원래 ssh_config 만 언급했습니다).
Kristopher Johnson

openssh 스타일의 ssh를 사용하는 경우 위의 모든 토론이 완벽합니다. 시스템이 ssh2를 사용하는 경우 키를 관리하는 완전히 엉뚱한 다른 방법이 있습니다. 이 기사에서는 방법과 내용에 대해 설명합니다. burnz.wordpress.com/2007/12/14/…
chris

1
일반적으로 확인 /var/log/auth.log데비안 시스템이나 /var/log/secure레드햇 사람에 당신에게 misconfidured 무엇의 명확한 조언 (일반적으로 권한 문제) 제공해야합니다
조반니 Toraldo

답변:


15

귀하의 문제가 다른 답변으로 이미 해결되었을 수도 있지만 사인 오프하기 전에 sshd_config 변경 사항을 확인하지 못하도록 충분한 시스템을 차단했습니다.

테스트 후 예상대로 동작이 확인 될 때까지 활성 ssh 연결을 분리하지 마십시오.

ㅏ. sshd가하고 있다고 생각되는 것을 확인하십시오.

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

씨. 감시 할 수있는 서버의 자세한 '테스트'버전을 시작하십시오.

디. 감시 할 수있는 자세한 '테스트'클라이언트 연결을 시작하십시오.


ㅏ. sshd가하고 있다고 생각되는 것을 확인하십시오.

아래와 같이 모든 주석없이 sshd 구성 파일을 검토하십시오 (sshd_config가 올바른 파일이고 / etc / ssh에 있다고 가정)

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

이것은 우리가 변화하고 있다고 생각하는 것을 검증하기 위해 (사실이 올바른지 아닌지를) 정리합니다.

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

내가 사용하는 sshd의 맨 페이지에서

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

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

씨. 감시 할 수있는 서버의 자세한 '테스트'버전을 시작하십시오.

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

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

디. 감시 할 수있는 자세한 '테스트'클라이언트 연결을 시작하십시오.

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

$ ssh -vvv -p 9999 서버 이름

이제 서버의 로그 파일 또는 클라이언트의 연결 화면에 충분한 정보가 있어야 문제를 격리 할 수 ​​있습니다.

이 솔루션은 일반적으로 파일 권한 (Magnar 및 setatakahashi에 의해 표시됨)으로 제공됩니다.

행운을 빌어 요


또한 클라이언트 쪽에서 ssh_config 파일을 확인하여 예상대로 작동하는지 확인해야합니다. 주석을 grep하려면 다음과 같은 것을 사용하십시오.> grep -v "^ #"/ etc / ssh / ssh_config | grep -v "^ $"
samt

글쎄, 클라이언트 ssh 구성은 언제든지 고정 될 수 있으며, 잘못 구성한 경우 서버가 잠겨 있습니다.
Soviero

33

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

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

6
ssh -vvv -l username server.domain은 유효한 키를 보내는 지 알려줍니다
Dave Cheney

때때로 sshd가 홈 디렉토리에 대한 잘못된 권한에 대해 불평하는 것을 보았습니다. 따라서 setatakahashi가 한 것처럼 "chmod o-rwx ~"(또는 최소한 "chmod ow ~")를 목록에 추가합니다. 이것은 일반적으로 로그 파일을 모니터링 할 때 분명해집니다. 내가 본 오류 메시지는 항상 올바른 방향을 가리 켰습니다.
Olaf

이 답변은 가장 가능성이 높은 것으로 보이지만 Dave Cheney의 의견은 실제로 진행중인 일을 확인할 수있는 유일한 방법입니다. 서버 로그도 확인하십시오.
dwc

이것은 내 문제였다. 나는 이것에 몇 시간 동안 내 머리를 이겼다. 정말 고마워!
Sam Soffes

1
이 속임수를 썼는지,하지만 내 이전의 권한이었다 07750644각각. 권한을 줄이는 것이 왜 도움이 되었습니까? 이것은 어딘가에 구성된 보안 예방 조치입니까?
Dean

11

$ 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


2
~에 대한 우수한 점, 그렇지 않으면 그들은 당신의 ~ / 스푸핑 디렉토리의 이름을 바꿀 수있는, 자신 이외의 아무도 홈 디렉토리에 쓸 수 있는지 확인해야합니다
데이브 체니

마지막 chmod는 : $ chmod 600 ~/.ssh/authorized_keysnot$ chmod 600 ~/.sHh/authorized_keys
SooDesuNe

3
속성 값은 무엇을해야 ?
Michael

0

또 다른 중요한 함정 ..

홈 디렉토리가 암호화되어 있으면 sshd는 ~ / .ssh / authorized_keys에 액세스 할 수 없습니다.

답변을 참조하십시오

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