Permission Denied Publickey 오류 해결하기
많은 시스템 관리자들이 ‘Permission Denied Publickey 오류 때문에 스트레스를 받곤 해요. 이 오류는 겉보기엔 간단해 보이지만, 막상 해결하려고 하면 꽤 골치 아플 수 있어요. 그러나 제가 소개하는 내용을 읽어보시고 따라 하면 쉽게 문제를 해결할 수 있습니다.
목차
1. 올바른 사용자 이름과 호스트 정보 확인하기
가장 먼저 확인해야 할 건 사용자 이름과 호스트 주소예요. 이 부분은 정말 간단하지만, 종종 놓치는 경우가 많죠. 작은 오타 하나가 큰 문제를 일으킬 수 있으니, 항상 다시 한 번 체크하는 게 좋습니다. ssh username@hostname
명령어에서 username
과 hostname
이 정확한지 꼭 확인해 보세요.
2. 서버에 공개 키가 제대로 업로드되었는지 확인하기
공개 키 인증을 사용하려면, 서버의 authorized_keys
파일에 공개 키가 제대로 올라가 있어야 해요. 이 파일은 보통 ~/.ssh/authorized_keys
경로에 위치합니다. 만약 이 파일이 없거나 공개 키가 없다면, 다음 명령어로 추가할 수 있어요:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
이렇게 하면 필요한 공개 키가 서버에 올바르게 저장됩니다.
3. 키와 SSH 폴더의 권한 설정하기
SSH는 키 파일의 권한을 매우 중요하게 생각해요. 개인 키 파일(~/.ssh/id_rsa
)은 소유자만 읽기 및 쓰기 권한을 가져야 하고, 공개 키 파일(~/.ssh/id_rsa.pub
)은 소유자와 그룹, 기타 사용자들이 읽기 권한을 가져야 합니다. 다음 명령어로 권한을 설정해 보세요:
chmod 600 ~/.ssh/id_rsa
chmod 644 ~/.ssh/id_rsa.pub
이렇게 하면 키 파일의 권한이 제대로 설정됩니다.
4. SSH 서비스 구성 확인하기
서버의 SSH 구성 파일(/etc/ssh/sshd_config
)에서 공개 키 인증이 활성화되어 있는지 꼭 확인하세요. 이 파일에 PubkeyAuthentication yes
라는 설정이 포함되어 있어야 해요. 만약 변경했다면 SSH 서비스를 재시작해야 합니다:
sudo systemctl restart sshd
이렇게 하면 서버의 SSH 구성이 적용됩니다.
5. 서버 가용성과 포트 확인하기
서버가 제대로 작동하고 있는지, 올바른 IP 주소나 도메인 이름과 포트(보통 22번 포트)를 사용하고 있는지 확인하세요. 다음 명령어로 특정 포트로 연결할 수 있습니다:
ssh username@hostname -p port_number
이렇게 하면 서버와의 연결이 제대로 이루어질 거예요.
6. SSH verbose 옵션 사용하기
오류를 더 잘 파악하려면 ssh -v
명령어를 활용해 보세요. 이 옵션은 SSH 연결 과정에서 발생하는 모든 단계를 자세히 보여줍니다. 이렇게 하면 어디서 문제가 생기는지 쉽게 찾을 수 있어요.
ssh -v username@hostname
이 명령어를 실행하면 인증 과정에서 나오는 모든 메시지를 볼 수 있으니, 오류를 쉽게 식별할 수 있습니다.
7. SSH 로그 파일 확인하기
마지막으로, SSH 로그 파일을 살펴보는 것도 좋은 방법이에요. 로그 파일은 일반적으로 /var/log/auth.log
또는 /var/log/secure
에 저장됩니다. 이 파일들을 체크하면 오류의 원인을 좀 더 구체적으로 알 수 있습니다.
sudo cat /var/log/auth.log
로그를 통해 어떤 문제가 발생했는지 파악할 수 있을 거예요.
결론
‘Permission Denied Publickey’ 오류는 처음 겪으면 정말 당황스러울 수 있지만, 위에서 소개한 단계들을 따라 차근차근 문제를 해결해 보세요. 올바른 사용자 이름과 호스트 정보부터 시작해서 공개 키 업로드 여부, 키와 폴더 권한 설정, SSH 서비스 구성 등을 모두 점검하는 게 중요합니다.
문제를 해결하면 더 이상 이 오류 때문에 고생하지 않게 될 거예요! 시스템 관리자로서 이런 문제들을 해결하는 능력은 정말 중요하니, 이번 기회를 통해 더 많은 지식을 쌓고 시스템을 안정적으로 운영하시길 바랍니다.
FAQ
1. ‘Permission Denied Publickey’ 오류는 왜 발생하나요?
이 오류는 클라이언트가 서버에 인증하려고 할 때 사용되는 공개 키가 일치하지 않거나, 공개 키 인증이 제대로 설정되지 않았을 경우 발생합니다. 키 파일 권한, authorized_keys 파일의 누락 또는 잘못된 구성 등이 주된 원인입니다.
2. authorized_keys 파일이 없을 경우 어떻게 생성하나요?
authorized_keys 파일이 없는 경우, 클라이언트에서 공개 키를 생성한 후 서버의 ~/.ssh 디렉터리에 파일을 만들고 공개 키를 추가해야 합니다. 다음 명령어를 실행하여 설정할 수 있습니다: mkdir -p ~/.ssh && chmod 700 ~/.ssh && touch ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys. 그런 다음 공개 키를 파일에 추가하세요.
3. SSH verbose 옵션은 어떤 정보를 제공하나요?
SSH verbose 옵션(-v)은 SSH 연결 과정의 상세 정보를 출력합니다. 이 옵션은 인증 단계에서 발생하는 모든 과정을 보여주며, 문제가 발생한 위치를 파악하는 데 유용합니다. ssh -v username@hostname 명령어를 사용하면 인증 과정에서 어떤 키가 사용되었는지, 서버와의 통신 상태 등을 알 수 있습니다.