SSH(Secure Shell)이란?

developowl·2026년 1월 18일

Network

목록 보기
4/4
post-thumbnail

SSH란?

  • Secure Shell 의 약자
  • 네트워크 상의 다른 컴퓨터에 로그인하거나 원격 시스템에서 명령을 실행할 수 있게 해주는 보안 네트워크 프로토콜
  • 과거에 사용했던 Telnet이나 FTP 등은 데이터를 평문(Plaintext)으로 보내는 방식과 달리, 모든 통신 내용을 암호화하여 스니핑(해킹)으로부터 안전하다.

특징

  • 강력한 암호화 : 패스워드뿐만 아니라 전송되는 데이터 전체를 암호화
  • 인증(Authentication) : 접속자가 올바른 사용자인지 확인(비밀번호 방식, 공개키 방식 등)
  • 무결성(Integrity) : 전송된 데이터가 중간에 위변조되지 않았음을 보장
  • 압축 : 데이터를 압축하여 전송하므로 네트워크 효율이 좋음

동작 원리

SSH는 기본적으로 클라이언트-서버 모델로 동작하며 표준 포트는 22번

  • 서버 설정
# 설치
apt -y install openssh-server

# 서비스 시작 및 활성화
sudo systemctl start ssh
sudo systemctl enable ssh

# 상태 확인 및 방화벽 허용
sudo systemctl status ssh

# 방화벽에서 22번 포트 해제
sudo ufw allow 22/tcp

SSH 키(Key) 방식 인증 방식 (권장)

  • 비밀번호 방식보다 훨씬 안전하며, 매번 비밀번호를 입력할 필요가 없어 매우 편리
  • 키의 역할
    - 개인키(Private Key) - 열쇠 역할: 클라이언트(내 PC)에 보관하며, 절대로 유출하면 안 된다. 본인을 인증하는 Key 역할
    • 공개키(Public Key) - 자물쇠 역할: 접속하려는 서버에 등록한다. 누구나 봐도 상관없으며, 개인키와 쌍을 이뤄 인증을 완료하는 '자물쇠' 역할
      • 자물쇠(공개키)를 서버에 던져두고, 내가 가진 유일한 열쇠(개인키)로 자물쇠를 열고 들어가는 방식.

키 쌍(Key Pair) 생성 및 등록

  • 내 PC(클라이언트)의 터미널에서 아래의 명령을 실행
# 키 생성 (RSA 방식, 4096비트)
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
# Enter를 세 번 눌러 기본값으로 셍성 (~/.ssh/ 폴더에 저장됨)

# 서버로 공개키 전송 (자동 등록)
ssh-copy-id -p [포트번호] [유저이름]@[서버IP]
  • 수동 등록 방법: ssh-copy-id를 쓸 수 없다면, 내 PC의 ~/.ssh/id_rsa/pub 내용을 복사해 서버의 ~/.ssh/authorized_keys 파일 끝에 붙여넣는다

⚠️ 중요: 파일 권한 설정

권한이 너무 관대하면 SSH 서버가 보안 위험으로 판단하여 접속을 차단하기도 한다. 아래의 설정을 꼭 확인하기

  • 디렉토리(~/.ssh): 700(나만 읽고 쓰기 가능)
  • 공개키 등록 파일(authorized_keys): 600
  • 개인키(id_rsa): 600

SSH Config로 접속 간소화하기

매번 ssh -p 2222 user@1.2.3.4 를 입력하기 번거로울 경우, ~/.ssh/config 파일을 만들어 간소화 가능

Host myserver
	HostName 1.2.3.4
    User developowl
    Port 2222
    IdentityFile ~/.ssh/id_rsa
  • -> 이제 터미널에서 ssh myserver 를 입력하면 바로 접속이 된다.

SCP를 이용한 안전한 파일 전송

SSH가 설정되어 있다면 scp 명령어로 파일을 안전하게 주고받을 수 있다.

  • 로컬 파일을 서버로 보낼 때: scp -P [포트] [파일명] [유저]@[IP]:[서버경로]
  • 서버의 파일을 로컬로 가져올 때: scp -P [포트] [유저]@[IP]:[서버경로] [로컬경로]
  • 디렉토리 전체를 보낼 때: scp -r [디렉토리명] [유저]@[IP]:[서버경로]
profile
Don’t get mad at the computer.

0개의 댓글