CentOS에서 PuTTY RSA 키 기반 로그인 설정하기

CentOS 시스템에서 PuTTY를 사용해 SSH 키 기반으로 자동 로그인을 구성하는 방법을 설명합니다. 이 방식은 비밀번호 없이 안전하게 서버에 접근할 수 있도록 해줍니다.

SSH 서버 설정 수정

먼저 SSH 데몬이 공개키 인증을 허용하도록 설정 파일을 편집합니다.

sudo vim /etc/ssh/sshd_config

다음 항목들이 주석 처리되어 있다면 제거하고 활성화하세요:

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

설정 변경 후 SSH 서비스를 재시작합니다:

sudo systemctl restart sshd

사용자 SSH 디렉터리 및 키 생성

root 사용자 기준으로 작업할 경우, 먼저 `.ssh` 디렉터리를 생성하고 권한을 설정합니다:

mkdir -p ~/.ssh
chmod 700 ~/.ssh

이제 RSA 키 쌍을 생성합니다:

ssh-keygen -t rsa -b 2048

출력 예시:

Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): [엔터]
Enter passphrase (empty for no passphrase): [비워둠]
Enter same passphrase again: [비워둠]
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.

공개키를 인증 키로 등록

생성된 공개키를 `authorized_keys` 파일에 추가합니다:

cat ~/.ssh/id_rsa.pub > ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

파일 권한과 존재 여부를 확인합니다:

ls -l ~/.ssh/

정상적인 출력 예:

-rw-------. 1 root root 408 Oct  5 10:00 authorized_keys
-rw-------. 1 root root 1675 Oct  5 09:58 id_rsa
-rw-r--r--. 1 root root 408 Oct  5 09:58 id_rsa.pub

PuTTY 사용 준비: PPK 키 변환

로컬 머신에 `id_rsa` 개인키를 다운로드한 후, PuTTYgen 도구를 사용해 PPK 형식으로 변환합니다:

  1. PuTTYgen 실행
  2. "Load" 클릭 → `id_rsa` 파일 선택 (모든 파일 형식 표시)
  3. 변환 완료 후 "Save private key"로 `.ppk` 파일 저장

PuTTY 세션 설정

PuTTY 설정 창에서 다음을 구성합니다:

  • Session > Host Name: 서버 IP 주소 입력
  • Connection > Data > Auto-login username: root
  • Connection > SSH > Auth > Private key file: 생성한 `.ppk` 파일 지정

세션을 저장하면 이후 간편하게 접속 가능합니다.

SELinux 문제 해결

접속 시 "Server refused our key" 오류가 발생한다면, SELinux 정책이 원인일 수 있습니다. 현재 상태를 확인하세요:

getenforce

결과가 Enforcing이라면 일시적으로 비활성화:

sudo setenforce 0

영구적으로 비활성화하려면 다음 파일을 수정:

/etc/selinux/config

다음 행을 다음과 같이 변경:

SELINUX=disabled

또는 보안을 유지하면서 경고만 받는 모드로 설정:

SELINUX=permissive

SELinux 컨텍스트 복구 (권장 대안)

SELinux를 완전히 비활성화하지 않고 해결하려면, SSH 관련 파일의 보안 컨텍스트를 복구하세요:

restorecon -R -v /root/.ssh

이 명령은 `.ssh` 디렉터리 내 파일들의 올바른 SELinux 라벨을 재적용합니다. 예:

restorecon reset /root/.ssh/authorized_keys context ... admin_home_t -> ssh_home_t

호스트 간 비밀번호 없는 SSH 설정

서버 간에 SSH 키 기반 통신을 설정하려면, 접근할 대상 서버의 `/etc/ssh/sshd_config`에 다음을 추가:

RSAAuthentication yes
PubkeyAuthentication yes
PasswordAuthentication no
PermitEmptyPasswords no

변경 후 반드시 SSH 서비스 재시작:

systemctl restart sshd

접근 소스 호스트에서는 해당 사용자의 `.ssh/id_rsa` 파일을 보관하면 됩니다.

태그: CentOS SSH PuTTY RSA 인증 SELinux

5월 26일 20:27에 게시됨