← 전체 글로 돌아가기

웹 개발

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)의 경로가 잘못됨

접속이 안 되면 복구

만약 새 터미널에서 접속이 안 되면:

  1. 기존 터미널에서 설정 되돌리기
sudo cp /etc/ssh/sshd_config.bak /etc/ssh/sshd_config
sudo systemctl restart sshd
  1. 문제 분석
# SSH 서버 로그 확인
sudo journalctl -u ssh -n 50

# 또는
sudo tail -50 /var/log/auth.log

체크리스트

  1. SSH 설정 변경 전에 기존 설정 백업했는가?
  2. 변경 후 sshd -t로 문법을 확인했는가?
  3. 새 터미널을 열어서 접속 테스트했는가?
  4. 기존 터미널은 닫지 않았는가?
  5. 문제가 생기면 빠르게 복구할 수 있는 상태인가?

SSH는 원격 접근의 유일한 방법이 될 수 있으므로, 항상 신중하게 다뤄야 한다.