왜 SSH가 여전히 비밀번호를 묻는가
키를 설정했는데도 SSH가 계속 비밀번호를 요구한다면 ── 이는 서버가 당신의 키를 받아들이지 않고 비밀번호 인증으로 되돌아갔다는 뜻입니다. 원인은 거의 항상 여섯 가지 중 하나입니다: 공개 키가 authorized_keys에 없음, 파일이나 디렉터리의 권한이 너무 개방적, 잘못된 사용자로 로그인, 클라이언트가 키를 제시하지 않음, sshd에서 키 인증이 비활성화됨, 또는 SELinux가 파일에 잘못된 레이블을 붙임. 어느 것인지 빠른 것부터 찾는 방법을 알려드립니다.
여섯 가지 원인
| # | 원인 | 확인 |
|---|---|---|
| 1 | 키가 authorized_keys에 없음 | 정말로 이 사용자에게 복사했나요? |
| 2 | 권한이 너무 개방적(가장 흔함) | ~/.ssh 700, authorized_keys 600, 홈은 그룹 쓰기 불가 |
| 3 | 사용자 이름이 틀림 | 키는 사용자별 ── 로그인하는 사용자에게 설치했나요? |
| 4 | 클라이언트가 키를 제시하지 않음 | ssh -v에 "Offering public key…"가 보이나요? |
| 5 | sshd가 키 인증을 허용하지 않음 | sshd_config에 PubkeyAuthentication yes가 있나요? |
| 6 | SELinux 컨텍스트가 틀림 | RHEL/Fedora:restorecon -R ~/.ssh |
서버가 알려주게 하라
가장 빠른 진단은 접속하는 동안 서버의 인증 로그를 보는 것입니다. 작동하는 세션(또는 콘솔)에서:
sudo tail -f /var/log/auth.log # Debian/Ubuntu
sudo journalctl -u ssh -f # systemd 이유를 그대로 말해줍니다 ── Authentication refused: bad ownership or modes for file …(이것이 원인 #2), 또는 user not allowed 등. 클라이언트 측에서는 ssh -v user@host로 당신의 키가 애초에 제시되고 있는지(원인 #4)를 확인할 수 있습니다.
1순위 해결책: 권한
authorized_keys가 너무 읽기 가능하면 OpenSSH는 조용히 무시합니다. 서버에서 로그인 사용자에 대해:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
chown -R $USER:$USER ~/.ssh 당신의 홈 디렉터리가 그룹 또는 전체 쓰기 가능이 아닌지도 확인하세요(chmod g-w,o-w ~). "키를 설치했는데도 비밀번호를 묻는" 경우 대부분이 이 원인입니다. 클라이언트 측의 대칭 문제 ── 당신의 개인 키가 너무 개방적인 경우 ── 는 UNPROTECTED PRIVATE KEY FILE입니다.
나머지 해결책
- 키 미설치 / 사용자 틀림 ── ssh-copy-id로 올바른 계정에 다시 복사하세요.
root에 설치해도ubuntu로 로그인하는 데는 도움이 되지 않습니다. - 클라이언트가 제시하지 않음 ── 올바른 키를 가리키세요:
ssh -i ~/.ssh/mykey user@host, 또는 특정 키 사용을 참고하세요. - sshd가 비활성화함 ──
/etc/ssh/sshd_config에PubkeyAuthentication yes를 설정한 뒤sudo systemctl restart ssh를 실행하세요.
휴대폰에서
모바일에서 이 일의 고통은 장황한 로그를 읽고 그것을 원인에 대응시키는 것입니다. 그 장비로의 작동하는 세션이 있다면, auth.log 줄을 선택해 어시스턴트에게 물어보세요 ── TermAI의 AI가 그것을 읽고, 권한 문제인지 키가 없는 것인지 설정 문제인지를 정확한 명령과 함께 알려줍니다. 그리고 TermAI는 키를 기기 Keychain에 저장하고 당신을 대신해 배포하기 때문에, 클라이언트 측 원인(잘못된 키 제시, 개인 키 권한 오류)은 애초에 발생하지 않습니다.
자주 묻는 질문
키를 추가했는데도 SSH가 비밀번호를 묻는 이유는?
서버가 키를 받아들이지 않아 비밀번호로 되돌아갑니다. 대개 ~/.ssh(700) 또는 authorized_keys(600)의 권한이 너무 개방적이거나, 키가 잘못된 사용자 아래에 있거나, 아예 추가되지 않은 것입니다. /var/log/auth.log를 확인하세요.
키가 제시되고 있는지 어떻게 확인하나요?ssh -v user@host를 실행해 "Offering public key"를 찾으세요. 없다면 -i로 클라이언트에 키를 지정하세요.
"bad ownership or modes"라고 나옵니다 ── 어떻게 하나요?
이것은 권한 원인입니다: chmod 700 ~/.ssh, chmod 600 ~/.ssh/authorized_keys, 그리고 홈 디렉터리가 그룹 쓰기 가능이 아닌지 확인하세요.
서버가 키 인증을 비활성화했을 수도 있나요?
그렇습니다 ── /etc/ssh/sshd_config의 PubkeyAuthentication yes를 확인하고 sshd를 재시작하세요.
핵심 요약
- 의미: 서버가 당신의 키를 거부하고 비밀번호로 되돌아갔다
- 1순위 원인: 권한 ──
~/.ssh700,authorized_keys600, 홈은 그룹 쓰기 불가 - 진단: 서버 측은
/var/log/auth.log, 클라이언트 측은ssh -v - 그 외: 사용자 틀림, 키 미제시,
PubkeyAuthentication no, SELinux 컨텍스트
Free on iOS and Android. 5 AI requests/day on the free tier, plus unlimited SSH/SFTP and built-in Tailscale.