ssh — 원격 서버 접속

Linux / 원격 서버 접속 관리 / ssh.html

원격 서버 접속 관리원문등록 2026-10-18

💬 "ssh 명령어"

ssh는 원격 서버에 암호화된 셸 세션을 엽니다. 서버 운영의 기본 통로입니다.

실무에서는 비밀번호 대신 키 인증을 쓰고, -p/-i/-L 같은 옵션을 함께 씁니다.

  • 개념: 원격 호스트에 접속해 명령을 실행하는 암호화 프로토콜입니다.
  • 왼쪽: user@host 형식으로 접속 대상입니다.
  • 옵션: -p 포트, -i 키 파일, -L 터널 등을 지정합니다.
  • 종료: exit 또는 Ctrl+D로 세션을 닫습니다.

자주 쓰는 옵션

옵션설명
-p <포트>기본 22가 아닌 포트로 접속합니다
-i <키파일>사용할 개인 키를 지정합니다
-L <로컬>:<대상>:<포트>로컬 포트 포워딩(터널)을 만듭니다
-v접속 과정을 자세히 출력해 문제를 진단합니다

필수 명령어 조합 3가지

  • ssh -p 22022 deploy@10.0.0.9 — 비표준 포트로 배포 계정 접속
  • ssh -i ~/.ssh/id_ed25519_gamehub root@10.0.0.9 — 지정한 키로 관리자 접속
  • ssh -L 5433:127.0.0.1:5432 deploy@10.0.0.9 — 원격 DB를 로컬 포트로 터널링

💬 "이걸로 배포 안정성을 높이는 예시 알려줘"

실제 운영 중인 서버에서 자주 만나는 상황을 순서대로 정리했습니다.

1단계 · 도달성 확인

포트가 열려 있는지 먼저 봅니다.

nc -vz 10.0.0.9 22 || nc -vz 10.0.0.9 22022

2단계 · 접속

키와 포트를 지정해 접속합니다.

ssh -i ~/.ssh/deploy_ed25519 -p 22022 deploy@10.0.0.9

3단계 · 문제 시 진단

접속이 안 되면 -v로 어느 단계에서 막히는지 봅니다.

ssh -v -p 22022 deploy@10.0.0.9

실무에서는 이렇게 씁니다

1. 운영 서버 긴급 접속

상황 — 장애 알림을 받고 운영 서버에 들어가야 합니다.

ssh -i ~/.ssh/prod_ed25519 ops@10.0.0.9

결과 — 키 인증으로 비밀번호 없이 바로 접속됩니다.

포인트 — 긴급 상황에서 비밀번호를 찾지 않도록 미리 키 인증을 설정해 둡니다.

2. 원격 DB 터널

상황 — 방화벽 때문에 로컬에서 DB에 직접 못 붙습니다.

ssh -N -L 5433:127.0.0.1:5432 ops@10.0.0.9

결과 — 로컬 5433 포트가 원격 5432로 연결되어 로컬 도구로 접근 가능합니다.

포인트 — -N은 셸 없이 터널만 엽니다. 작업 후 세션을 닫아 터널을 정리합니다.

주의할 점

  • root 직접 접속은 권장하지 않습니다. 배포 계정 + sudo를 씁니다.
  • 키 파일 권한은 600이어야 합니다. 너무 열려 있으면 ssh가 거부합니다.
  • 터널(-L)은 접속이 유지되는 동안만 유효합니다. 끊기면 다시 열어야 합니다.
  • Host key 변경 경고는 중간자 공격 가능성이 있으므로 무턱대고 known_hosts를 지우지 않습니다.

실제 실행 화면

키 인증으로 운영 서버에 접속해 상태를 확인한 결과입니다.

ssh 명령어 실행 결과: 원격 접속과 상태 확인

실제 운영 중인 서버

이 문서는 화면 표시용 가상 디렉터리의 항목입니다. 실제 서버 파일시스템과 연결되지 않으며, 파일 실행이나 시스템 명령을 수행하지 않습니다.