TIL

[에스넷시스템 부트캠프] TIL Day 48 - OpenSSH

yulee_to 2025. 7. 28. 22:02
728x90
반응형

1. OpenSSH

OpenSSH는 SSH 프로토콜을 구현한 오픈소스 소프트웨어로 원격 시스템에 안전하게 접속하고 파일을 전송할 수 있게 해주는 도구이다. 

SSH는 원격 컴퓨터에 안전하게 액세스하기 위한 유닉스 기반의 명령 인터페이스 및 프로토콜로서, Secure Socket Shell이라고 불리기도 한다. 

 

1) 주요 기능

  • 원격 로그인 (ssh)
  • 원격 명령 실행
  • 파일 전송 (scp, sftp)
  • 포트 포워딩
  • 암호화된 통신 채널 제공

 

2) 구성 요소

  • ssh : 원격 시스템에 로그인
  • scp : 원격 시스템 간의 파일 복사
  • sftp : SSH 기반의 FTP
  • sshd : SSH 서버 데몬
  • ssh-keygen : 공개키/개인키 생성
  • ssh-agent : 키 관리용 에이전트
  • ssh-add : ssh-agent에 키 추가

 

3) 설정 파일

경로  설명
/etc/ssh/ssh_config 클라이언트 전역 설정
~/.ssh/config 클라이언트 사용자 설정
/etc/ssh/sshd_config 서버 설정 파일
~/.ssh/authorized_keys 클라이언트의 공개키를 저장하여 비밀번호 없이 로그인 허용
~/.ssh/known_hosts 접속했던 서버의 공개키 목록 (서버의 위조 방지)

 

4) SSH 연결 절차

  1. 클라이언트 → 서버 포트 22 접속 시도
  2. 서버 → 공개키(RSA/ED25519 등)를 포함한 초기 패킷 전송
  3. 클라이언트 → 서버의 키를 검증 : 처음 접속 시 known_hosts에 등록됨
  4. 세션 키 생성 및 서버 공개키로 암호화 → 서버에 전달
  5. 서버 → 세션 키 복호화 후 대칭키 방식 통신 시작
  6. 서버 → 사용자 인증 요청 : 비밀번호, 공개키, GSSAPI, 인증서 등
  7. 인증 완료 시 암호화된 세션 시작

 

5) 암호화 방식 및 보안 메커니즘

  • 대칭키 암호화 (세션 키)
    • 통신은 속도와 효율을 위해 대칭키 알고리즘으로 암호화됨
    • 알고리즘 예시 : AES, ChaCha20, Blowfish(구버전)
  • 비대칭키 암호화 (세션 키 전달 시 사용)
    • 공개키/개인키 방식으로 세션 키 전송 시 사용
    • 알고리즘 : RSA, ECDSA, ED25519
  • 메시지 인증 코드 (MAC)
    • 데이터의 무결성 검증 
    • 예시 : hmac-sha2-256, hmac-sha1

 

728x90
반응형