웹 개발
SSH 접속을 확인할 때 기존 터미널을 먼저 닫지 말기
SSH 설정을 바꾼 후 접속 테스트할 때 주의할 점을 정리했다.
SSH 설정을 수정하고 접속이 잘 되는지 확인할 때, 현재 터미널을 바로 닫으면 안 된다. 새로운 설정이 적용되지 않았을 때, 접속할 수 없게 된다.
안전한 방법은 기존 터미널은 열어둔 채로, 새 터미널을 열어서 테스트하는 것이다.
위험한 방법
# SSH 설정 변경
sudo vi /etc/ssh/sshd_config
# 서비스 재시작
sudo systemctl restart sshd
# 현재 터미널 닫음 - 위험!
exit
SSH 설정에 오류가 있으면 새로 접속할 수 없다. 기존 터미널이 닫혀버렸으므로, 원격으로는 서버에 접근할 방법이 없다.
안전한 방법
# SSH 설정 변경
sudo vi /etc/ssh/sshd_config
# 설정 파일 문법 확인
sudo sshd -t
# 문법이 맞으면 재시작
sudo systemctl restart sshd
# 현재 터미널은 그대로 두고, 새 터미널 탭이나 창을 열어서
# 새로 접속해본다
ssh user@hostname
새로 열린 터미널에서 접속이 잘 되면 OK. 안 되면 기존 터미널로 돌아가서 설정을 수정한다.
SSH 설정 변경 전 항상 확인
# 1. 현재 설정 백업
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
# 2. 변경
sudo vi /etc/ssh/sshd_config
# 3. 문법 확인 - 이 단계가 필수
sudo sshd -t
# 4. 문법이 OK이면 재시작
sudo systemctl restart sshd
# 5. 새 터미널에서 접속 테스트
ssh user@hostname
만약 sshd -t에서 에러가 나면 설정을 다시 확인한다. 재시작하지 말 것.
흔한 설정 오류
Port값이 숫자가 아님ListenAddress의 IP 주소 오류PermitRootLogin이나PasswordAuthentication값이 잘못됨- 공개 키 파일(
AuthorizedKeysFile)의 경로가 잘못됨
접속이 안 되면 복구
만약 새 터미널에서 접속이 안 되면:
- 기존 터미널에서 설정 되돌리기
sudo cp /etc/ssh/sshd_config.bak /etc/ssh/sshd_config
sudo systemctl restart sshd
- 문제 분석
# SSH 서버 로그 확인
sudo journalctl -u ssh -n 50
# 또는
sudo tail -50 /var/log/auth.log
체크리스트
- SSH 설정 변경 전에 기존 설정 백업했는가?
- 변경 후
sshd -t로 문법을 확인했는가? - 새 터미널을 열어서 접속 테스트했는가?
- 기존 터미널은 닫지 않았는가?
- 문제가 생기면 빠르게 복구할 수 있는 상태인가?
SSH는 원격 접근의 유일한 방법이 될 수 있으므로, 항상 신중하게 다뤄야 한다.