SSH로 원격 서버에 연결할 때 문제가 발생하고, 디버깅 로그를 확인하려고 -vvv 옵션을 추가했음에도 로그가 표시되지 않는 경우가 있습니다. 이런 상황에서는 몇 가지 기본적인 조치와 해결 방법을 통해 문제를 더 잘 파악할 수 있습니다.
1. 표준 출력 및 표준 오류 리디렉션
SSH 명령어 실행 시, 디버그 로그가 표준 오류(stderr)로 출력되기 때문에 로그가 보이지 않을 수 있습니다. 이 경우 표준 오류 스트림을 표준 출력(stdout)으로 리디렉션하여 모든 로그를 볼 수 있습니다.
해결 방법:
ssh -i /path/to/id_rsa -vvv user@remote_host 2>&1
위와 같이 2>&1을 사용하여 표준 오류를 표준 출력으로 리디렉션하면, 디버깅 로그를 포함한 모든 출력이 화면에 표시됩니다.
2. -q 옵션 제거
-q(quiet) 옵션은 모든 출력 메시지를 억제합니다. 만약 이 옵션이 활성화되어 있으면 디버깅 로그가 표시되지 않으므로, -q 옵션을 제거하고 다시 시도해야 합니다.
해결 방법:
ssh -i /path/to/id_rsa -vvv user@remote_host
이렇게 하면 디버깅 로그가 정상적으로 출력됩니다.
3. 서버 접근 권한 및 방화벽 설정 확인
SSH 연결이 실패하는 원인은 서버 쪽 방화벽 또는 네트워크 설정일 수 있습니다. 서버가 SSH 연결을 허용하고 있는지, 포트가 열려 있는지 확인해 보세요.
확인 사항:
- 서버에서 SSH 포트(일반적으로 22번)가 열려 있는지 확인.
- 서버의 방화벽이나 보안 그룹이 SSH 접근을 허용하는지 점검.
4. SSH 설정 파일 확인
SSH 설정 파일에서 연결과 관련된 설정이 올바르게 적용되었는지 확인하세요. /etc/ssh/sshd_config 파일에서 올바른 포트와 인증 설정이 되어 있는지 확인하고, 필요하다면 서버를 재시작하여 설정을 적용할 수 있습니다.
설정 파일 확인 예시:
Port 22
PermitRootLogin yes
PasswordAuthentication no
이 설정들이 올바르게 되어 있는지 확인하고, 수정 후 SSH 서버를 재시작하세요:
sudo systemctl restart sshd
5. GitHub Actions 로그 설정 강화
만약 GitHub Actions에서 SSH 명령을 사용하고 있다면, Actions의 디버그 설정을 활성화해 더 많은 로그 정보를 확인할 수 있습니다. 환경 변수 ACTIONS_RUNNER_DEBUG를 true로 설정하면 추가적인 디버깅 정보를 확인할 수 있습니다.
GitHub Actions 환경 변수 설정:
env:
ACTIONS_RUNNER_DEBUG: true
결론
SSH 디버깅 로그가 보이지 않을 때는 표준 출력과 표준 오류 스트림을 병합하고, -q 옵션을 제거한 후 다시 시도해야 합니다. 서버 접근 권한과 네트워크 설정도 함께 점검하여 문제가 발생할 수 있는 모든 가능성을 해결하세요. GitHub Actions에서 디버깅을 활성화하여 로그를 확인하는 것도 좋은 방법입니다.