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 연결 절차
- 클라이언트 → 서버 포트 22 접속 시도
- 서버 → 공개키(RSA/ED25519 등)를 포함한 초기 패킷 전송
- 클라이언트 → 서버의 키를 검증 : 처음 접속 시 known_hosts에 등록됨
- 세션 키 생성 및 서버 공개키로 암호화 → 서버에 전달
- 서버 → 세션 키 복호화 후 대칭키 방식 통신 시작
- 서버 → 사용자 인증 요청 : 비밀번호, 공개키, GSSAPI, 인증서 등
- 인증 완료 시 암호화된 세션 시작
5) 암호화 방식 및 보안 메커니즘
- 대칭키 암호화 (세션 키)
- 통신은 속도와 효율을 위해 대칭키 알고리즘으로 암호화됨
- 알고리즘 예시 : AES, ChaCha20, Blowfish(구버전)
- 비대칭키 암호화 (세션 키 전달 시 사용)
- 공개키/개인키 방식으로 세션 키 전송 시 사용
- 알고리즘 : RSA, ECDSA, ED25519
- 메시지 인증 코드 (MAC)
- 데이터의 무결성 검증
- 예시 : hmac-sha2-256, hmac-sha1
728x90
반응형