블로그 이름

[SFTP] SFTP 키 파일 인증 설정 본문

개발/기타

[SFTP] SFTP 키 파일 인증 설정

Hide 2024. 6. 3. 15:29

키 파일을 사용하여 Windows Server 2016의 OpenSSH 서버에 접속하는법

1. SSH 키 생성 (클라이언트 측)
먼저 클라이언트 측에서 SSH 키를 생성합니다. 이 예제에서는 ssh-keygen 도구를 사용합니다. Linux, macOS 또는 Windows에서 사용할 수 있습니다. Windows에서는 Git Bash를 사용할 수 있습니다.

sh
ssh-keygen -t rsa -b 2048 -C "your_email@example.com"
-t rsa: RSA 타입의 키를 생성합니다.
-b 2048: 키 길이를 2048비트로 설정합니다.
-C "your_email@example.com": 키에 주석을 추가합니다.
키를 생성하면 다음과 같은 출력이 나타납니다:

Generating public/private rsa key pair.
Enter file in which to save the key (/home/your_username/.ssh/id_rsa):
기본 경로를 사용하거나 원하는 경로를 입력한 후 Enter 키를 누릅니다.

다음으로, 암호를 설정할지 묻습니다. 암호를 설정하지 않으려면 Enter 키를 누릅니다.

Enter passphrase (empty for no passphrase):
Enter same passphrase again:


2. 공개 키를 서버로 복사
공개 키를 서버로 복사해야 합니다. 생성된 키는 기본적으로 id_rsa (비밀 키) 및 id_rsa.pub (공개 키) 파일로 저장됩니다.

공개 키(id_rsa.pub) 파일의 내용을 복사하여 서버의 사용자 홈 디렉토리 아래에 authorized_keys 파일에 추가합니다.

먼저 서버에 로그인하고, ~/.ssh 디렉토리를 생성합니다.

powershell
mkdir C:\Users\your_username\.ssh
authorized_keys 파일을 생성하고 공개 키를 추가합니다.

notepad C:\Users\your_username\.ssh\authorized_keys
authorized_keys 파일에 클라이언트에서 생성한 id_rsa.pub 파일의 내용을 복사하여 붙여넣습니다.

3. sshd_config 파일 설정
sshd_config 파일에서 키 인증이 활성화되어 있는지 확인합니다. 해당 파일은 보통 C:\ProgramData\ssh\sshd_config에 있습니다.

powershell
notepad C:\ProgramData\ssh\sshd_config
다음 설정이 포함되어 있는지 확인하거나 추가합니다:

PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys


설정을 저장하고 sshd 서비스를 재시작합니다.
powershell
Restart-Service sshd


4. 파일 및 디렉토리 권한 설정
authorized_keys 파일과 .ssh 디렉토리의 권한을 올바르게 설정해야 합니다.

powershell
icacls C:\Users\your_username\.ssh /grant your_username:F
icacls C:\Users\your_username\.ssh\authorized_keys /grant your_username:F


5. 클라이언트에서 접속 시도
이제 클라이언트에서 키 파일을 사용하여 서버에 접속할 수 있습니다.
ssh -i /path/to/id_rsa your_username@your_server_ip


이 단계를 따르면 키 파일을 사용하여 Windows Server 2016의 OpenSSH 서버에 안전하게 접속할 수 있습니다.