SSH를 사용하여 자신의 CentOS 서버에 연결하려고합니다. 암호로 잘 연결할 수 있습니다. 공개 키와 연결하려고하는데 서버가 공개 키 인증을 시도하지 않습니다. CentOS 위키 에서이 페이지의 모든 지시 사항을 따르고 다음 사항을 확인했습니다.
-
CentOS 6.0 이상을 실행하고 있습니다
-
내 sshd_config에는 다음이 있습니다.
PermitRootLogin no PubkeyAuthentication Yes RSAAuthentication yes AuthorizedKeysFile .ssh/authorized_keys
-
클라이언트의 홈 디렉토리에있는 .ssh / 폴더에 개인 키를 작성했습니다
- 공개 키의 전체 텍스트 (로 생성
ssh-keygen
)는 서버의 홈 디렉토리에있는 .ssh / authorized_keys 파일에서 한 줄을 차지합니다. -
클라이언트와 서버 모두에 다음 권한 모드가 설정되어 있습니다.
chmod 700 .ssh chmod 600 .ssh/*
답변
CentOS 웹 사이트 의이 문제 보고서 에 따르면 이는 SELinux의 업스트림 “기능”때문입니다. SELinux가 적용되는 경우 서버가 pubkey 인증을 사용하지 못하게됩니다. 가까운 시일 내에이 동작이 변경 될 것이라는 징후는 없습니다. 이 문제가 자신에게 적용되는지 확인하려면 sestatus
“현재 모드”를로보고하십시오 enforcing
.
두 가지 해결 방법을 알고 있습니다.
- SELinux를 허용 모드로 설정할 수 있습니다.
setenforce 0
정책을 즉시 변경하려면 입력 한 다음을 열고/etc/selinux/config
확인하십시오SELINUX=permissive
. -
파일을 올바른 보안 컨텍스트로 복원하십시오.
restorecon -R -v ~$USER/.ssh