안녕하세요, 베스핀글로벌 GCP Support팀입니다.
이번 아티클에서는 주제로 "SSH 연결 문제 해결"을 다루고자 합니다.
네트워크 연결 이슈
VM의 SSH 접속이 되지 않는 원인은 다양합니다.
우선적으로 Google Cloud에서 제공하는 SSH 트러블슈팅 문서[1]를 참고하시기 바랍니다.
일반적으로 방화벽, 네트워크 연결 또는 사용자 계정과 관련된 연결 문제로 인해 SSH를 통한 VM 인스턴스 연결이 불가능할 수 있습니다.
SSH 연결을 허용하는 기본 방화벽 규칙이 제거될 경우 인스턴스에 액세스할 수 없으니 방화벽 정책 확인이 필요합니다.
22번 포트에 대해 허용되어있는지 확인 후, 네트워크 연결 테스트[2]을 통해 네트워크 연결 문제 가능성을 배제합니다.
사용자 계정의 권한 이슈
다른 원인으로는 로그인이 안 되는 문제는 특정 사용자 계정에 국한된 문제일 수 있습니다.
예를 들어 인스턴스의 ~/.ssh/authorized_keys 파일에 대한 권한이 사용자에게 올바르게 설정되어 있지 않을 수 있습니다.
또는 GCP VM에 SSH 접속할 수 있는 IAM 권한이 부여되지 않은 상황일 수도 있습니다.
따라서 Permission 에러가 발생하였다면 어느 수준에서 발생한 권한 오류인지를 잘 확인하시기 바랍니다.
리눅스 VM의 경우, 같은 IP에서 일정 횟수 이상의 반복적인 접속을 시도한 경우라면 해당 IP에서의 접속을 일정시간 동안 자동으로 block하는 ssh guard에 의한 차단일 가능성도 있습니다.
따라서 접속이 막히지 않도록 리눅스 내부에서 whitelist를 수정해야 합니다.
whitelist 설정 방법은 root 권한으로 /etc/sshguard/whitelist 파일에 이용하는 IP를 추가하면 됩니다.
Disk 용량 부족으로 인한 SSH 키 저장 불가 이슈
자주 발생하지는 않지만, SSH 접속 시 "No space left on device" 오류가 발생하는 경우 Disk 용량이 부족한 상황입니다.
Cloud Logging Log나 직렬 콘솔을 통해 확인할 수 있습니다.
- Compute Engine > VM Instance > VM 클릭 > Logs > Serial port 1 (console) 클릭
해결방법으로는 Disk 용량을 확장하거나 VM을 중지 시킨 후 부팅 디스크를 다른 VM의 비부팅 디스크로 추가하여 Disk 내 데이터를 정리하여 용량을 확보합니다.
위 작업 진행 시에는 Disk 백업을 위해 스냅샷을 항상 만드신 후 진행하시기 바랍니다.
SSHD 상태 오류
sshd의 서비스 오류로 인해 VM 접속이 불가능할 수도 있습니다.
VM에 직렬 콘솔 접속을 활성화하여 Root 계정으로 접속 한 뒤, 아래 명령어로 sshd 상태를 확인합니다.
sudo systemctl status sshd
만약 sshd 상태가 정상이 아니라면 아래 명령어로 sshd를 재시작 합니다.
sudo systemctl restart sshd
상태가 정상이라면 아래 경로에서 sshd log를 확인하여 ssh 불가 원인을 파악해보시기 바랍니다.
sudo tail -f /var/log/secure
혹은 /etc/ssh/sshd_config 설정파일 내에 사용자가 AllowUsers에 추가되지 않았을 수도 있습니다.
사용자의 홈 디렉토리 삭제 혹은 생성 불가 이슈
작업 중 실수로 사용자의 홈 디렉토리를 삭제하여 authorized keys 파일의 디렉토리가 삭제되어 SSH 접속이 불가능할 수 있습니다.
이 경우 직렬 콘솔로 접속 혹은 다른 사용자로 접속하여 해당 사용자의 홈 디렉토리를 생성해주시거나, SSH 키를 개별 홈 디렉토리에 저장하지 않는 OS Login[4]을 사용해보시기를 권장 드립니다.
참조 링크
[1] SSH 트러블슈팅
https://cloud.google.com/compute/docs/troubleshooting/troubleshooting-ssh-errors
[2] 연결 테스트 만들기
https://cloud.google.com/network-intelligence-center/docs/connectivity-tests/how-to/running-connectivity-tests
[3] 디스크 용량 오류
[4] OS Login
https://cloud.google.com/compute/docs/instances/ssh#os-login
관련 문의사항이 있으시면 Support Portal에 문의해 주시기 바랍니다.
감사합니다.