# OpenSSH 설치 가이드 (리눅스, 맥OS, 윈도우)

#### 리눅스에서 OpenSSH 설치

**1. 설치 전 준비 사항**

OpenSSH를 설치하기 전에 사용 중인 리눅스 배포판에 따라 필요한 패키지 관리자가 다를 수 있다. 대표적인 리눅스 배포판별 패키지 관리자:

* Ubuntu/Debian 계열: `apt`
* CentOS/Fedora/RHEL 계열: `yum` 또는 `dnf`

**2. Ubuntu/Debian 계열에서 OpenSSH 설치**

```bash
sudo apt update
sudo apt install openssh-server
```

이 명령어는 OpenSSH 서버를 설치하며, 설치 후 자동으로 서비스를 시작한다.

**3. CentOS/Fedora 계열에서 OpenSSH 설치**

```bash
sudo yum install openssh-server
```

또는

```bash
sudo dnf install openssh-server
```

설치 후 OpenSSH 데몬을 시작하고 자동 시작이 가능하도록 설정한다:

```bash
sudo systemctl start sshd
sudo systemctl enable sshd
```

**4. 설치 확인 및 서비스 상태 확인**

설치가 완료되면 OpenSSH 서버가 정상적으로 실행되고 있는지 확인해야 한다. 다음 명령어로 SSH 서버의 상태를 확인할 수 있다:

```bash
sudo systemctl status sshd
```

정상적으로 설치되었다면, `active (running)` 상태가 출력된다.

#### 맥OS에서 OpenSSH 설치

맥OS에는 기본적으로 OpenSSH 클라이언트와 서버가 포함되어 있다. 하지만 기본적으로 SSH 서버는 비활성화되어 있다. 다음 단계를 따라 SSH 서버를 활성화할 수 있다.

**1. 시스템 설정을 통해 SSH 활성화**

1. **Apple 메뉴**에서 **시스템 설정**을 엽니다.
2. **공유** 메뉴로 이동한 후, **원격 로그인**을 선택한다.
3. **원격 로그인**을 활성화하면 SSH 서버가 활성화된다.

**2. 터미널을 통한 SSH 서버 활성화**

SSH 서버를 터미널에서 직접 활성화할 수도 있다. 아래 명령어를 실행하여 SSH 서버를 활성화한다:

```bash
sudo systemsetup -setremotelogin on
```

이 명령어로 SSH 서버가 활성화되며, 필요 시 동일한 명령어를 사용해 비활성화할 수 있다:

```bash
sudo systemsetup -setremotelogin off
```

#### 윈도우에서 OpenSSH 설치

**1. Windows 10/11에서 OpenSSH 설치**

Windows 10과 11에서는 OpenSSH 클라이언트와 서버 기능이 기본적으로 포함되어 있지만, 수동으로 설치가 필요할 수 있다.

1. **설정** 메뉴에서 **앱 및 기능**으로 이동한다.
2. **선택적 기능 관리**를 클릭한 후, **OpenSSH 클라이언트**와 **OpenSSH 서버**를 각각 설치한다.

**2. PowerShell을 통한 설치**

다음 명령어로 OpenSSH 클라이언트와 서버를 설치할 수 있다:

```powershell
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
```

설치 후, OpenSSH 서버를 시작하고 자동으로 실행되도록 설정한다:

```powershell
Start-Service sshd
Set-Service -Name sshd -StartupType 'Automatic'
```

**3. 방화벽 설정**

윈도우에서는 SSH 포트를 열어줘야 원격 접속이 가능한다. 다음 명령어로 방화벽에서 SSH 포트를 허용할 수 있다:

```powershell
New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
```

#### 3. 설치 확인 및 SSH 서버 상태 확인

OpenSSH가 정상적으로 설치되고 실행 중인지 확인하기 위해 다음 명령어를 사용하여 서비스 상태를 점검할 수 있다.

```powershell
Get-Service sshd
```

정상적으로 설치되었으면, `Status`가 `Running`으로 표시된다.

또한, SSH 서버에 접속이 가능하도록 설정이 올바른지 확인하기 위해 Windows의 네트워크 방화벽이 올바르게 설정되었는지 확인해야 한다. 이미 설정된 포트 규칙 외에 방화벽에서 SSH 포트(기본값 22)를 허용하는 규칙을 추가해야 한다.

**4. 접속 테스트**

설치 후, SSH 클라이언트가 정상적으로 서버에 접속할 수 있는지 테스트해야 한다. Windows에서 SSH 클라이언트를 사용하여 다른 SSH 서버에 접속하는 방법은 다음과 같다.

1. Windows 터미널 또는 PowerShell을 열고, 아래 명령어로 SSH 서버에 접속을 시도한다.

```powershell
ssh [username]@[server_ip_address]
```

2. 서버의 IP 주소와 사용자 이름을 입력한 후, 암호를 입력하여 정상적으로 접속되는지 확인한다.

접속 테스트가 성공적으로 이루어졌다면 OpenSSH 설치 및 설정이 완료된 것이다.
