728x90
반응형
SMALL
부제: 인증 문제 없는 인증 문제🤣
구글 클라우드(GCP)에서 "SSH authentication has failed"라는 오류를 처음 접하면, 일반적으로 키 인증 문제를 의심하게 된다. 하지만 이번에 필자가 경험한 사례처럼, 디스크 용량 부족(No space left on device)으로 인해 SSH 자체가 정상 작동하지 못하는 경우도 있다😨.
이 글에서는 해당 문제의 정확한 원인과 해결 과정을 기록해두며, 유사한 문제를 겪는 사용자에게 실질적인 도움을 주고자 한다.
🔍 문제 상황 요약
- GCP VM에 SSH 접속을 시도할 때 아래와 같은 오류 메시지 출력
- 터미널에서 ssh로 접속하면 "Permission denied (publickey)" 등의 메시지가 뜬다
- GCP 콘솔에서는 "SSH authentication has failed"가 뜬다.
- GCP 콘솔 > VM 인스턴스 > 인스턴스 클릭 > 로그 문단의 직렬 포트 1(콘솔)을 클릭하면 로그 말미에 " No space left on device"가 있다.
🎯 근본 원인 분석
이 오류는 사실상 디스크 용량이 100% 찬 상태에서 발생한 문제였다. GCP에서는 디스크 용량이 가득 차면 다음과 같은 일이 발생한다😱.
- 사용자 로그인 후 필요한 임시 파일(.Xauthority, .bash_history 등)을 생성할 수 없고, 로그인 후 세션을 유지하거나, .bashrc, .profile 등을 읽어오는 등 실행되어야 할 것들이 정상적으로 실행되지 않음
- 따라서, 인증 이후에도 세션이 유지되지 않아 접속이 강제로 끊김
- 결과적으로 SSH 인증 실패처럼 보이는 현상이 나타남
이와 같은 원인으로 단순히 디스크 사이즈를 늘려도, 이미 가득 찬 상태에서는 OS 내에서 디스크 파티션 재확장, 파일 삭제 등 조작 자체가 불가하다. 이 때문에 다음과 같은 작업이 필수다.
🛠 해결 방법
1. 문제가 발생한 VM 종료 및 디스크 분리
- GCP 콘솔(Google Cloud Console) 접속
- Compute Engine > VM 인스턴스로 이동
- 문제가 발생한 VM 선택 후, 인스턴스를 중지 (⚠️ 이 작업은 인스턴스가 반드시 중지된 상태에서 진행해야 한다)
- 부팅 디스크 항목 클릭 → 디스크 관리 화면으로 이동
- 해당 디스크를 Detach(연결 해제)
.
2. 새 임시 VM 인스턴스 생성
- 같은 리전에 임시로 사용할 새 VM 생성 (예: temp-vm)
- 디스크는 작고 가벼운 이미지(예: Ubuntu minimal)로 생성
3. 문제 디스크를 임시 VM에 마운트
- 생성한 임시 VM의 디스크 설정으로 이동
- 앞서 분리한 문제 디스크를 추가 디스크로 연결(인스턴스에서 수정을 하면 추가 디스크를 연결 항목이 있음)
- 콘솔에서 SSH로 temp-vm 접속 후, 디스크 확인
lsblk
- 일반적으로 /dev/sdb1 또는 /dev/sdc1 등으로 나타남
- 디스크 마운트
sudo mkdir /mnt/recover
sudo mount /dev/{추가된 디스크의 부팅 영역(ex> sdb1)} /mnt/recover
4. 디스크 내 불필요한 파일 삭제
- 디스크 사용량 분석(/mnt/recovery 1 depth 폴더와 파일 기준으로 용량 기준 상위 20개 출력)
sudo du -sh /mnt/recover/* | sort -hr | head -n 20
- 주로 아래 위치에서 공간을 많이 차지함:
- /var/log → 로그 누적
- /tmp → 임시파일
- /home/사용자/Downloads, .cache
- /usr/lib 또는 /var/lib/docker (도커 이미지 누적)
- 불필요한 로그 및 캐시 파일 삭제
5. 디스크 언마운트 후 다시 원래 VM에 부착
- 정리가 끝난 디스크는 임시 VM에서 디스크 언마운트
sudo umount /mnt/recover
- GCP 콘솔에서 해당 디스크를 임시 VM에서 제거
- 다시 원래 문제가 발생했던 VM에 부팅 디스크로 설정 후 연결
6. VM 재시작 및 SSH 접속 테스트
- 원래 VM 인스턴스를 시작
- GCP 콘솔에서 SSH 접속 재시도
이후 정상적으로 접속이 이루어진다면, 용량 부족으로 인해 정상 동작하지 못했던 것이 주요 원인임을 확인할 수 있다 ✅
📌 팁: VM 디스크 자동 용량 모니터링 스크립트
- 서버에 아래와 같은 스크립트를 주기적으로 실행하거나, 접속 시, .bashrc에서 불러오도록 하면 좋다.
#!/bin/bash
THRESHOLD=90
USAGE=$(df -h / | grep -v Filesystem | awk '{print $5}' | sed 's/%//')
if [ "$USAGE" -gt "$THRESHOLD" ]; then
echo "⚠️ 디스크 사용량 $USAGE% 초과! 정리 필요!"
fi
- 크론탭에 등록하거나, Cloud Monitoring 알림 조건에 디스크 사용량 90% 이상 트리거를 설정하는 것도 추천한다.
이와 같은 절차를 미리 알고 있으면, VM이 “접속 불가” 상태로 멈추는 사태를 빠르게 해결할 수 있다. GCP를 실무에서 활용하는 사용자라면(이런 일이 발생하지 않게 모니터링하고 있겠지만🤣) 꼭 숙지해야 할 팁이다 💡.
(필자는 반나절을 날렸다😥)

728x90
LIST
'일상 정보' 카테고리의 다른 글
| [의료] 비결핵항산균(NTM) 폐질환, 알고 나면 덜 두렵다 (1046) | 2025.06.16 |
|---|---|
| 명동 교자: 1966년부터 이어온 칼국수 맛집의 품격 🍜 (71) | 2025.05.12 |
| 비염 관리, 꾸준함이 답이다 😷 (157) | 2025.04.24 |
| [IT] 브라우저 스크롤 페이지 한 방에 캡처하는 법, 다 알려줌 😎 (64) | 2025.04.21 |
| XC60 긴급 타이어 수리 키트로 타이어 공기압 점검 및 조절하기 (124) | 2025.03.24 |
댓글