사용자 계정이 있는 여러 컴퓨터에 공개 키 액세스를 설정하려고 합니다.
내가 뭘 한거지:
ssh-keygen
나는 문제의 두 컴퓨터에 액세스하는 데 사용했던 개인용 컴퓨터에서 (비밀번호 없이) 키 쌍을 생성한 적이 있습니다.id_rsa.pub
이것으로 생성된 파일을~/.ssh/authorized_keys
두 컴퓨터 에 모두 첨부 했습니다 .
이 설정은 제대로 작동하며 SSH를 통해 컴퓨터에 연결할 수 있습니다. 하지만 다른 컴퓨터에서는 여전히 비밀번호를 묻는 메시지가 표시됩니다. ssh -vvv
관련 출력 라인인 다음을 사용해 보았습니다 .
debug1: Offering public key: /xxxx/xxxxx/.ssh/id_rsa
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Trying private key: /xxxx/xxxx/.ssh/id_dsa
debug3: no such identity: /xxxx/xxxx/.ssh/id_dsa
debug2: we did not send a packet, disable method
debug3: authmethod_lookup password
debug3: remaining preferred: ,password
그러면 비밀번호를 입력하라는 메시지가 표시되며 해당 비밀번호를 사용하여 정상적으로 로그인할 수 있습니다.
두 시스템의 계정은 동일하며 NIS 매핑을 통해 내보냅니다. 인증에 성공한 머신은 NIS 서버이고, 다른 머신은 클라이언트입니다. 두 컴퓨터의 내 홈 디렉터리는 다음과 같습니다.아니요동일합니다(NFS 마운트 없음 등). 이것이 두 기계를 구별하는 제가 생각할 수 있는 유일한 차이점입니다.
여기서 무엇이 잘못될 수 있나요?
답변1
두 시스템 모두에 개인 키를 넣어야 합니다(명시적으로 언급하지 않았습니다).
홈 디렉터리, 홈 디렉터리로 연결되는 디렉터리, .ssh 디렉터리, 마지막으로 개인 키 파일 및 Authorized_keys의 권한을 확인하세요. 홈 디렉터리 외부에는 루트가 아닌 사람이 아무것도 쓸 수 없어야 합니다. 권한이 너무 공개되어 있으면 제3자가 자신의 공개 키를 authorized_keys
파일에 저장하고 이를 사용하여 사용자에게 액세스할 수 있으므로 이는 ssh 데몬이 수행하는 검사입니다.
작동하는 시스템이 있으면 권한/소유권을 작동하지 않는 시스템과 비교할 수 있습니다.