- SSH Server
SSH Server란 원격에서 안전하게 접속 할 수 있도록 서비스를 제공하는
소프트웨어로 SSH 프로토콜을 기반으로 동작한다.
주로 서버 관리 데이터 전송 보안 터널링등을 위하여 사용되며 클라이언트와
안전한 통신을 보장한다.
일반적으로 sshd라는 이름의 서비스가 SSH서버 역할을 하며 클라이언트와의
통신을 처리한다.
- SSH Server의 주요역할
1. 원격 접속 허용
클라이언트가 SSH 프로토콜을 사용하여 원격 서버에 접속할 수 있도록 한다.
서버는 클라이언트의 접속을 수락하고 인증 절차를 거쳐 연결을 설정한다.
2. 사용자 인증
서버는 클라이언트가 접속하려는 사용자를 인증하는 기능을 제공한다.
보통 비밀번호 또는 공개 키를 이용해 사용자 인증을 한다.
클라이언트가 서버에 접속할때 인증 절차를 거쳐야만 접속이 이루어진다.
3. 암호화된 통신 제공
SSH Server는 암호화된 연결을 제공하여 중간에서 데이터를 가로채는 공격을 방지한다.
전송되는 모든 데이터는 암호화되어 누군가가 중간에서 패킷을 훔쳐보는것을 방지한다.
4. 원격 작업 처리
클라이언트가 원격 서버에서 명령을 실행할 수 있도록 한다.
예를 들어 서버에서 파일을 수정하거나 서버의 시스템 상태를 점검하는 등의 작업을
터미널에서 명령어를 수행할 수 있다.
5. 파일전송
SFTP나 SCP 같은 프로토콜을 통해 파일 전송 기능을 제공한다.
이를 통해 서버와 클라이언트 간에 안전하게 파일을 주고 받을 수 있다.
- SSH Server의 동작원리
1. 클라이언트가 접속을 시도한다.
SSH 클라이언트가 SSH Server에 접속하기 위해, 클라이언트의 IP주소와
서버의 포트(기본적으로 22번 포트)를 지정하여 연결을 시도한다.
2. 서버가 클라이언트를 인증한다.
서버는 클라이언트가 보낸 인증 정보를 검사한다. 일반적으로 비밀번호나 공개 키 인증 방법을 사용한다.
공개 키 인증 방식이 안전하고, 비밀번호 없이 서버에 연결할 수 있도록 설정할 수 있다.
3. 암호화된 세션 생성
인증이 성공하면 서버와 클라이언트 간에 암호화된 통신 세션이 생성된다.
이 세션을 통해 모든 통신은 암호화되어 안전하게 전송된다.
4. 명령어 실행 및 데이터 처리
클라이언트는 서버에서 명령어를 실행하거나 파일을 전송하는 등의 작업을 수행한다.
서버는 이러한 명령을 처리하고 결과를 다시 클라이언트에게 보낸다.
- SSH Server 사용해보려면?
설치
sudo apt update // 리눅스 시스템이 최신 패키지 정보 목록을 가져오는 명령어
sudo apt install openssh-server // sshserver를 설치하는 명령어


상태확인
sudo systemctil status ssh
// 이 명령으로 SSH Server가 정상적으로 실행중인지 확인할 수 있다.
// q 를 누르면 명령어 종료

SSH Server 시작 / 중지
sudo systemctl start ssh // 시작
sudo systemctl stop ssh // 중지
- SSH Server의 보안 관리
1. 비밀번호 인증 비활성화
보안을 강화하려면 비밀번호 인증을 비활성화 하고, 공개 키 인증만 사용하도록 설정할 수 있다.
이를 위해 SSH 설정파일(/etc/ssh/sshd_config)에서 PasswordAuthentication no 로 설정한다.
2. 접속 제한
서버에 접속할 수 있는 사용자나 IP 주소를 제한하여 보안을 강화할 수 있다.
3. 로그 관리
SSH 접속 로그는 /var/log/auth.log 와 같은 파일에 기록된다.
이 로그를 통해 누가 언제 접속했는지 확인할 수 있다.
- 정리
결론적으로 SSH Server는 SSH 프로토콜을 이용해 원격접속을 처리하는 프로그램으로
서버 측에서 실행되어야 하며 클라이언트가 서버에 안전하게 접속하고, 데이터를
암호화된 채로 주고받을 수 있도록 돕는 중요한 역할을 한다.
'개발학습기' 카테고리의 다른 글
| SFTP(Secure File Transfer Protocol) (0) | 2024.12.28 |
|---|---|
| SCP(Secure Copy Protocol) (0) | 2024.12.28 |
| 프로토콜(Protocol) (0) | 2024.12.28 |
| 개발학습기 목록 (1) | 2024.12.28 |
| SSH(Secure Shell) (1) | 2024.12.28 |