wiki:it:linux:networking:ssh
차이
문서의 선택한 두 판 사이의 차이를 보여줍니다.
wiki:it:linux:networking:ssh [2025/07/29 05:57] – 만듦 syjang0803 | wiki:it:linux:networking:ssh [2025/07/30 06:43] (현재) – 바깥 편집 127.0.0.1 | ||
---|---|---|---|
줄 1: | 줄 1: | ||
- | ===== 리눅스 SSH 프로토콜 가이드 ===== | + | ====== 리눅스 SSH 프로토콜 가이드 |
이 문서는 리눅스 시스템에서 Secure Shell (SSH) 프로토콜을 사용하는 방법에 대한 포괄적인 가이드입니다. SSH는 원격 서버에 안전하게 접속하고, | 이 문서는 리눅스 시스템에서 Secure Shell (SSH) 프로토콜을 사용하는 방법에 대한 포괄적인 가이드입니다. SSH는 원격 서버에 안전하게 접속하고, | ||
---- | ---- | ||
- | ==== 1. SSH란 무엇인가? | + | ===== 1. SSH란 무엇인가? |
SSH (Secure Shell)는 네트워크를 통해 컴퓨터에 원격으로 접근하고 명령을 실행하며, | SSH (Secure Shell)는 네트워크를 통해 컴퓨터에 원격으로 접근하고 명령을 실행하며, | ||
- | === 1) SSH의 주요 기능 === | + | ==== 1) SSH의 주요 기능 |
* '' | * '' | ||
* '' | * '' | ||
줄 14: | 줄 14: | ||
* '' | * '' | ||
- | === 2) SSH 작동 방식 === | + | ==== 2) SSH 작동 방식 |
SSH는 클라이언트-서버 모델로 작동합니다. SSH 클라이언트는 SSH 서버에 연결을 요청하고, | SSH는 클라이언트-서버 모델로 작동합니다. SSH 클라이언트는 SSH 서버에 연결을 요청하고, | ||
---- | ---- | ||
- | ==== 2. SSH 핵심 개념 ==== | + | ===== 2. SSH 핵심 개념 |
SSH를 효과적으로 사용하기 위해 이해해야 할 몇 가지 핵심 개념들이 있습니다. | SSH를 효과적으로 사용하기 위해 이해해야 할 몇 가지 핵심 개념들이 있습니다. | ||
- | === 1) 기본 포트 === | + | ==== 1) 기본 포트 |
* SSH 서버는 기본적으로 TCP '' | * SSH 서버는 기본적으로 TCP '' | ||
- | === 2) 인증 방식 === | + | ==== 2) 인증 방식 |
SSH는 크게 두 가지 주요 인증 방식을 제공합니다. | SSH는 크게 두 가지 주요 인증 방식을 제공합니다. | ||
줄 37: | 줄 37: | ||
* 인증 과정: 클라이언트가 개인키를 사용하여 암호화된 메시지를 서버에 보내면, 서버는 저장된 공개키로 이를 해독하여 클라이언트의 신원을 확인합니다. | * 인증 과정: 클라이언트가 개인키를 사용하여 암호화된 메시지를 서버에 보내면, 서버는 저장된 공개키로 이를 해독하여 클라이언트의 신원을 확인합니다. | ||
- | === 3) SSH 에이전트 (ssh-agent) === | + | ==== 3) SSH 에이전트 (ssh-agent) |
* SSH 에이전트는 개인키를 메모리에 로드하여 관리하는 프로그램입니다. | * SSH 에이전트는 개인키를 메모리에 로드하여 관리하는 프로그램입니다. | ||
* 개인키에 비밀번호(Passphrase)가 설정되어 있을 경우, 세션 시작 시 한 번만 비밀번호를 입력하면 이후에는 반복해서 입력할 필요 없이 개인키를 사용할 수 있게 해줍니다. | * 개인키에 비밀번호(Passphrase)가 설정되어 있을 경우, 세션 시작 시 한 번만 비밀번호를 입력하면 이후에는 반복해서 입력할 필요 없이 개인키를 사용할 수 있게 해줍니다. | ||
---- | ---- | ||
- | ==== 3. SSH 기본 사용법 ==== | + | ===== 3. SSH 기본 사용법 |
SSH 클라이언트를 사용하여 원격 서버에 접속하는 가장 기본적인 방법과 일반적인 옵션들을 알아봅니다. | SSH 클라이언트를 사용하여 원격 서버에 접속하는 가장 기본적인 방법과 일반적인 옵션들을 알아봅니다. | ||
- | === 1) 원격 서버 접속 === | + | ==== 1) 원격 서버 접속 |
기본적인 SSH 접속 명령어 형식은 다음과 같습니다. | 기본적인 SSH 접속 명령어 형식은 다음과 같습니다. | ||
줄 58: | 줄 58: | ||
< | < | ||
- | === 2) 첫 접속 시 호스트 키 확인 === | + | ==== 2) 첫 접속 시 호스트 키 확인 |
원격 서버에 처음 접속할 때, SSH 클라이언트는 서버의 ' | 원격 서버에 처음 접속할 때, SSH 클라이언트는 서버의 ' | ||
줄 68: | 줄 68: | ||
* 만약 호스트 키가 변경되었다는 경고가 나타나면, | * 만약 호스트 키가 변경되었다는 경고가 나타나면, | ||
- | === 3) 자주 사용되는 SSH 옵션 === | + | ==== 3) 자주 사용되는 SSH 옵션 |
^ 옵션 ^ 설명 ^ | ^ 옵션 ^ 설명 ^ | ||
줄 79: | 줄 79: | ||
---- | ---- | ||
- | ==== 4. SSH 키 기반 인증 설정 ==== | + | ===== 4. SSH 키 기반 인증 설정 |
SSH 키 기반 인증은 비밀번호 인증보다 훨씬 안전하고 편리합니다. | SSH 키 기반 인증은 비밀번호 인증보다 훨씬 안전하고 편리합니다. | ||
- | === 1) SSH 키 쌍 생성 === | + | ==== 1) SSH 키 쌍 생성 |
'' | '' | ||
줄 103: | 줄 103: | ||
* '' | * '' | ||
- | === 2) 공개키를 서버에 복사 === | + | ==== 2) 공개키를 서버에 복사 |
생성된 공개키를 원격 서버의 '' | 생성된 공개키를 원격 서버의 '' | ||
줄 126: | 줄 126: | ||
< | < | ||
- | === 3) SSH 에이전트 사용 === | + | ==== 3) SSH 에이전트 사용 |
개인키에 비밀번호가 설정되어 있다면, 매번 접속할 때마다 비밀번호를 입력해야 합니다. SSH 에이전트를 사용하면 이 불편함을 해소할 수 있습니다. | 개인키에 비밀번호가 설정되어 있다면, 매번 접속할 때마다 비밀번호를 입력해야 합니다. SSH 에이전트를 사용하면 이 불편함을 해소할 수 있습니다. | ||
줄 138: | 줄 138: | ||
---- | ---- | ||
- | ==== 5. SSH 설정 파일 ('' | + | ===== 5. SSH 설정 파일 ('' |
'' | '' | ||
- | === 1) 설정 파일의 이점 === | + | ==== 1) 설정 파일의 이점 |
* '' | * '' | ||
* '' | * '' | ||
* '' | * '' | ||
- | === 2) 설정 파일 예시 === | + | ==== 2) 설정 파일 예시 |
다음은 '' | 다음은 '' | ||
줄 174: | 줄 174: | ||
---- | ---- | ||
- | ==== 6. SSH 고급 활용법 ==== | + | ===== 6. SSH 고급 활용법 |
SSH는 단순한 원격 접속을 넘어 다양한 고급 기능을 제공합니다. | SSH는 단순한 원격 접속을 넘어 다양한 고급 기능을 제공합니다. | ||
- | === 1) SCP (Secure Copy Protocol) === | + | ==== 1) SCP (Secure Copy Protocol) |
SCP는 SSH를 통해 파일을 안전하게 복사하는 명령어입니다. | SCP는 SSH를 통해 파일을 안전하게 복사하는 명령어입니다. | ||
줄 190: | 줄 190: | ||
< | < | ||
- | === 2) SFTP (SSH File Transfer Protocol) === | + | ==== 2) SFTP (SSH File Transfer Protocol) |
SFTP는 SSH를 통해 파일을 전송하는 대화형 프로토콜입니다. FTP와 유사하지만 보안성이 강화되었습니다. | SFTP는 SSH를 통해 파일을 전송하는 대화형 프로토콜입니다. FTP와 유사하지만 보안성이 강화되었습니다. | ||
줄 204: | 줄 204: | ||
* '' | * '' | ||
- | === 3) SSH 터널링 (포트 포워딩) === | + | ==== 3) SSH 터널링 (포트 포워딩) |
SSH 터널링은 암호화된 SSH 연결을 통해 네트워크 트래픽을 전달하여, | SSH 터널링은 암호화된 SSH 연결을 통해 네트워크 트래픽을 전달하여, | ||
줄 235: | 줄 235: | ||
---- | ---- | ||
- | ==== 7. SSH 보안 강화 팁 ==== | + | ===== 7. SSH 보안 강화 팁 ===== |
SSH 서버의 보안을 강화하는 것은 시스템을 외부 위협으로부터 보호하는 데 매우 중요합니다. | SSH 서버의 보안을 강화하는 것은 시스템을 외부 위협으로부터 보호하는 데 매우 중요합니다. | ||
- | === 1) 기본 SSH 포트 변경 === | + | ==== 1) 기본 SSH 포트 변경 |
* 기본 포트(22번)는 공격자들의 주요 스캔 대상이 됩니다. 임의의 다른 포트 번호(예: 2222, 54321)로 변경하는 것이 좋습니다. | * 기본 포트(22번)는 공격자들의 주요 스캔 대상이 됩니다. 임의의 다른 포트 번호(예: 2222, 54321)로 변경하는 것이 좋습니다. | ||
* ''/ | * ''/ | ||
줄 248: | 줄 248: | ||
* 변경 후 SSH 서비스 재시작 및 방화벽 설정 업데이트가 필요합니다. | * 변경 후 SSH 서비스 재시작 및 방화벽 설정 업데이트가 필요합니다. | ||
- | === 2) 비밀번호 인증 비활성화 === | + | ==== 2) 비밀번호 인증 비활성화 |
* 키 기반 인증을 완벽하게 설정한 후에는 비밀번호 인증을 비활성화하여 무차별 대입 공격을 방지합니다. | * 키 기반 인증을 완벽하게 설정한 후에는 비밀번호 인증을 비활성화하여 무차별 대입 공격을 방지합니다. | ||
* ''/ | * ''/ | ||
줄 255: | 줄 255: | ||
</ | </ | ||
- | === 3) 루트 로그인 비활성화 === | + | ==== 3) 루트 로그인 비활성화 |
* 루트 계정은 모든 권한을 가지므로, | * 루트 계정은 모든 권한을 가지므로, | ||
* ''/ | * ''/ | ||
줄 262: | 줄 262: | ||
</ | </ | ||
- | === 4) SSH 접속 허용 사용자 제한 === | + | ==== 4) SSH 접속 허용 사용자 제한 |
* 특정 사용자만 SSH 접속을 허용하도록 설정할 수 있습니다. | * 특정 사용자만 SSH 접속을 허용하도록 설정할 수 있습니다. | ||
* ''/ | * ''/ | ||
줄 270: | 줄 270: | ||
</ | </ | ||
- | === 5) Fail2ban 사용 === | + | ==== 5) Fail2ban 사용 |
* Fail2ban은 SSH 로그를 모니터링하여 반복적인 로그인 실패 시 해당 IP 주소를 일정 시간 동안 차단하는 도구입니다. 무차별 대입 공격 방지에 매우 효과적입니다. | * Fail2ban은 SSH 로그를 모니터링하여 반복적인 로그인 실패 시 해당 IP 주소를 일정 시간 동안 차단하는 도구입니다. 무차별 대입 공격 방지에 매우 효과적입니다. | ||
* 대부분의 리눅스 배포판에서 패키지 관리자를 통해 설치할 수 있습니다. | * 대부분의 리눅스 배포판에서 패키지 관리자를 통해 설치할 수 있습니다. | ||
- | === 6) SSH 서비스 재시작 === | + | ==== 6) SSH 서비스 재시작 |
'' | '' | ||
줄 283: | 줄 283: | ||
---- | ---- | ||
- | ===== 결론 ===== | + | ====== 결론 |
SSH는 리눅스 시스템 관리 및 원격 작업에 있어 없어서는 안 될 핵심 프로토콜입니다. 이 가이드에서 다룬 SSH의 기본 개념, 키 기반 인증 설정, 설정 파일 활용, 그리고 고급 기능 및 보안 강화 팁을 통해 사용자는 더욱 안전하고 효율적으로 원격 서버를 관리할 수 있을 것입니다. 강력한 보안 기능과 유연한 활용성을 제공하는 SSH를 숙달함으로써, | SSH는 리눅스 시스템 관리 및 원격 작업에 있어 없어서는 안 될 핵심 프로토콜입니다. 이 가이드에서 다룬 SSH의 기본 개념, 키 기반 인증 설정, 설정 파일 활용, 그리고 고급 기능 및 보안 강화 팁을 통해 사용자는 더욱 안전하고 효율적으로 원격 서버를 관리할 수 있을 것입니다. 강력한 보안 기능과 유연한 활용성을 제공하는 SSH를 숙달함으로써, | ||
+ | |||
+ | |||
+ | |||
+ |
wiki/it/linux/networking/ssh.1753768669.txt.gz · 마지막으로 수정됨: 저자 syjang0803