/
~/.ssh/authorized_keys 에 public key 를 추가했으나 자동 로그인이 안 됨

~/.ssh/authorized_keys 에 public key 를 추가했으나 자동 로그인이 안 됨

아래 내용은 SELinux 관련 ssh 로그인 에러 해결책이며 ssh 를 비밀 번호 입력없이 사용하는 방법은 scp, ssh, rsync 를 key 비밀 번호/암호 입력창 없이 사용하기 를 참고하세요.


증상

remote ssh 서버에 공개키를 등록하고 .ssh 폴더와 authorized_keys 파일의 permission 도 맞는데 자동 로그인이 안 됨.


원인

사용자의 홈디렉토리나 .ssh 의 SELinux context 가 맞지 않으면 sshd가 authorized_keys 을 읽을 수 없어서 자동 로그인이 안 될수 있음


해결

  1. audit2why 로 SELinux audit 확인

    audit2why  < /var/log/audit/audit.log
    type=AVC msg=audit(1389772205.869:373802): avc:  denied  { search } for  pid=31947 comm="sshd" name="/" dev=dm-2 ino=2 scontext=unconfined_u:system_r:sshd_t:s0-s0:c0.c1023 tcontext=system_u:object_r:file_t:s0 tclass=dir
            Was caused by:
                    Missing type enforcement (TE) allow rule.
                    You can use audit2allow to generate a loadable module to allow this access.
  2. 로그인 못 하는 사용자 디렉토리의 context 확인

    ls -dlZ /home/lesstif/
    drwxr-xr-x. lesstif rnd unconfined_u:object_r:file_t:s0  /home/lesstif/

    /home/lesstif의 context 가 user_home_dir_t 여야 하는데 file_t 로 설정되어 있음

    ls -dlZ /home/lesstif/.ssh
    drwx------. lesstif rnd unconfined_u:object_r:ssh_home_t:s0 /home/lesstif/.ssh/

    .ssh context 는 정상적(ssh_home_t)으로 설정됨

  3. restorecon 으로 context 복구

    restorecon -R /home/lesstif
  4. 다시 로그인 시도하여 확인

Related content

scp, ssh, rsync 를 key 비밀 번호/암호 입력창 없이 사용하기
scp, ssh, rsync 를 key 비밀 번호/암호 입력창 없이 사용하기
More like this
ssh 개인키 암호 변경/해제하기(change ssh private key pass phrase)
ssh 개인키 암호 변경/해제하기(change ssh private key pass phrase)
More like this
ssh Authentications method 설정
ssh Authentications method 설정
More like this
ssh-agent 가 private key 를 캐싱할 수 있도록 등록해 주는 ssh-add 명령어 사용법
ssh-agent 가 private key 를 캐싱할 수 있도록 등록해 주는 ssh-add 명령어 사용법
More like this
SSH Load key "Invalid format" 에러 처리 - OpenSSH 용 개인키를 RSA 개인키로 변환
SSH Load key "Invalid format" 에러 처리 - OpenSSH 용 개인키를 RSA 개인키로 변환
More like this
Bitbucket SSH Key 추가시 "Someone has already registered that SSH key" 에러
Bitbucket SSH Key 추가시 "Someone has already registered that SSH key" 에러
More like this